У меня есть собственный класс с именем BlinkingLight.
У меня также есть статическая ObservableCollection BlinkingLightCollection.
В пользовательском интерфейсе у меня есть ListBox, который связан с BlinkingLightCollection.
В моем ListBox я хочу по существу отобразить каждый объект BlinkingLight в качестве пользовательского элемента управления, который выглядит как блок со светодиодной подсветкой, с анимацией, которая заставляет светодиод выглядеть так, как будто он просто мигает на секунду, а затем возвращается в нормальное состояние.
В моем классе BlinkingLight есть сторонний объект «LED», который вызывает событие «Flash».
Я ищу идеи или решения, чтобы заставить это работать!
Моя неудачная попытка:
Я создал пользовательский элемент управления (BlinkingLightControl), который может связываться с данными моего класса BlinkingLight, когда BlinkingLight является DataContext моего настраиваемого элемента управления.
Я создал шаблон данных для моего ListBox:
<Window.Resources>
<DataTemplate x:Key="blinkingLightItemTemplate" >
<local:BlinkingLightControl />
</DataTemplate>
</Window.Resources>
<ListBox ItemsSource={Binding Source={x:Static local:Data.BlinkingLightCollection}}
ItemTemplate="{StaticResource blinkingLightItemTemplate}" />
Примечание: я могу просто поместить xaml для своего пользовательского элемента управления в табличку данных, вместо этого, имея совершенно другой элемент управления, если это облегчает задачу.
Теперь я хочу, чтобы в моем BlinkingLightControl (или DataTemplate) был EventTrigger, для которого RoutedEvent является событием LED.Flash. К сожалению, я не могу понять эту часть. Я попытался создать RoutedEvent в своем классе BlinkingLight и просто вызывать его всякий раз, когда я обрабатываю событие LED.Flash. Однако мой класс не является UIElement или ContentElement, и для каждого MSDN: MSND Link
"Владельцем перенаправленного события может быть любой класс, но перенаправленные события должны вызываться и обрабатываться производными классами UIElement или ContentElement, чтобы быть полезными. Для получения дополнительной информации о пользовательских событиях см. Практическое руководство. Создание настраиваемого перенаправленного события . "
Любая помощь будет принята с благодарностью!
Спасибо,
Скотт