Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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


03:17.


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

RusProfile.ru


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