У меня есть список, в котором отображаются элементы отгрузки (пользовательский класс), отформатированные с использованием таблицы данных (см. Ниже). В шаблоне есть элемент границы (я называю его драгоценным камнем), который отображает, какой элемент активен (не выбран), который будет элементом, к которому будут добавляться продукты.
template.png
В классе отгрузки (Active) есть логическое свойство, которое задается в обработчике события щелчка для элемента Gem. Обычно камень должен быть темным, как на первом изображении, а затем светиться, когда активен.
У меня установлен DataTrigger в DataTemplate для обработки изменения цвета Gem.
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Active}" Value="True">
<Setter TargetName="ActiveGem" Property="Background">
<Setter.Value>
<RadialGradientBrush>
<GradientStop Color="Red" Offset="0"/>
<GradientStop Color="#FF820000" Offset="1"/>
</RadialGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Active}" Value="False">
<Setter TargetName="ActiveGem" Property="Background">
<Setter.Value>
<RadialGradientBrush>
<GradientStop Color="Red" Offset="0"/>
<GradientStop Color="#FF820000" Offset="1"/>
</RadialGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</DataTemplate.Triggers>
Однако по какой-то причине, когда приложение загружается, все гемы горят, показывая, что все пакеты активны.
** Из-за ограничений репутации на stackOverflow я не могу публиковать больше гиперссылок. Изображение ниже находится в том же домене, что и выше.
/ ExternalImages / ActiveItems.PNG
Я проверил, что все элементы на самом деле Активны = Ложь, но камень всегда горит. Кроме того, когда я запускаю событие click, я просматриваю коллекцию Package и устанавливаю все Active = False, а затем устанавливаю TemplatedParent отправителя активным.
Dim ActiveShipments = From ship In ShipmentData _
Where ship.Active = True
For Each MyShipment As Shipment In ActiveShipments
MyShipment.Active = False
Next
Dim Gem As Border = sender
Dim ShipmentObject As ContentPresenter = Gem.TemplatedParent
ShipmentObject.Content.Active = True
Драгоценные камни не возвращаются в свое неосвещенное состояние (которым они никогда не были в первую очередь). Они только остаются освещенными. Есть идеи?
Cory
- Как ни странно, в поле с кодом появилось только первое редактирование ... Исправлено.