J'ai une zone de liste qui affiche les éléments de port (classe personnalisée) qui sont formatées avec un DataTemplate (voir ci-dessous). Il y a un élément de bordure dans le gabarit (je l'appelle une gemme) qui affiche quel élément est actif (non sélectionné) qui sera l'élément auquel les produits seront ajoutés.DataTriggers dans Expression Blend
Il y a une propriété booléenne dans la classe d'expédition (actif) qui est situé dans un gestionnaire d'événements, cliquez pour l'élément Gem. Normalement, le Gem est censé être sombre comme dans la première image, puis allumé lorsqu'il est actif.
J'ai un DataTrigger mis en place dans le DataTemplate pour gérer le changement de la couleur de la pierre.
<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>
Pour une raison quelconque, cependant, lorsque les charges d'application toutes les pierres précieuses sont allumées montrant les paquets sont tous actifs.
** En raison des limites de réputation sur Stackoverflow Je ne peux pas encore poster des liens plus. L'image ci-dessous est au même domaine que celui ci-dessus.
/ExternalImages/ActiveItems.PNG
J'ai vérifié que tous les éléments sont en fait Active = Faux, mais le bijou est toujours allumé De plus, lorsque j'exécute l'événement click, je parcours la collection Package et je mets tout Active = False, puis active le TemplatedParent de l'expéditeur.
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
Les Gems ne retournent pas à leur état éteint (ce qu'ils n'ont jamais été en premier lieu). Ils ne restent allumés. Des idées?
Cory
--Oddly, a montré seulement dans la zone de code de la première édition ... corrigée.
Aussi, j'oublié de demander, est-il un moyen de créer et de modifier DataTriggers dans Expression Blend 3? Je ne vois aucun moyen de le faire, et je voudrais utiliser le concepteur si possible, car je ne suis pas sûr de la syntaxe utilisée ci-dessus pour la liaison. Cory – CodeWarrior
besoin de voir plus de code, en particulier, le déclencheur de données qui gère le changement de couleur. 90% sûr que c'est là que le problème est. – Charlie
Salut Cory, Avez-vous trouvé un moyen de traiter DataTriggers dans Expression Blend? Je suis coincé avec ça: -s. Merci! –