Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 17.01.2018, 13:10   #1
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,033
Репутация: 586

icq: 359393755
По умолчанию Триггер к интерфейсу элемента

Здравствуйте.
Не могу никак разобраться с триггерами.

Есть ItemsControl который связан со списком объектов.
Каждый объект реализует интерфейс с особыми параметрами для отображения.
Нужно в шаблоне элемента сделать так чтобы по щелчку на элемент изменялось свойство "Selected" в интерфейсе.

Как не крутил все время ругается что не может найти свойство.

Код:

Код:

<DataTemplate x:Key="DeviceViewTemplate" DataType="{x:Type local:DeviceInfo}">

// вот так пытаюсь сделать
            <DataTemplate.Triggers>
               <EventTrigger RoutedEvent="Click"> // уже тут говорит что не знает такого
                    // тут хочу чтобы по триггеру изменялось свойство ISelectableItem.Selected
                </EventTrigger>
            </DataTemplate.Triggers>

            <Border Background="{Binding Path=(local:ISelectableItem.BackColor)}" Margin="3" BorderBrush="Black" BorderThickness="1" Width="170" Height="80">
                <Border.Effect>
                    <DropShadowEffect Color="Silver" BlurRadius="10"/>
                </Border.Effect>

...  тут таблица с структурой отображения информации.

        </DataTemplate>


класс local:DeviceInfo:
Код:

public class DeviceInfo : INotifyPropertyChanged, ISelectableItem
    {
        byte[] _ID = null;
        byte _PALevel = 0;

        /// <summary>
        /// Текущее состояние устройства
        /// </summary>
        ModuleHardware.PendingCommand State;

        public bool ISelectableItem.Selected
        {
            get;
            set;
        }

        public double ISelectableItem.IconOpacity
        {
            get
            {
                if (State == ModuleHardware.PendingCommand.CONNECT_SUCCESS)
                {
                    return 1;
                }
                else return 0.5;
            }
            set => throw new NotImplementedException();
        }

        public Brush ISelectableItem.BackColor
        {
            get { return !Selected ? Brushes.AliceBlue : new SolidColorBrush( Color.FromRgb(0xAE, 0xD9, 0xff)); }
            set => throw new NotImplementedException();
        }

... там прочий код
    }

Может кто знает как это можно реализовать?
Спасибо.
__________________
ICQ - 359393755 E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по интерфейсу БД Антон_ Microsoft Office Access 5 27.03.2015 15:52
От консоли к интерфейсу borof Общие вопросы Delphi 14 18.01.2013 20:23
Передача данных по CAN интерфейсу Linore C# (си шарп) 1 22.09.2011 21:01
Вопрос по интерфейсу, Delphi 2006 Etrimus Общие вопросы Delphi 8 24.05.2010 13:20


00:21.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru