Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2018, 12:10   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию Триггер к интерфейсу элемента

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

Есть 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();
        }

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по интерфейсу БД Антон_ Microsoft Office Access 5 27.03.2015 14: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