Warum kann ich nicht fügen Sie ein DataTrigger zur Kontrolle der Trigger-Sammlung?
Warum kann ich code wie diesen
<Border Width="130" Height="70">
<Border.Triggers>
<DataTrigger Binding="{Binding Path=CurrentStatus}" Value="0">
<Setter Property="Style" Value="{StaticResource ResourceKey=ListBoxItemBorder}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=CurrentStatus}" Value="200">
<Setter Property="Style" Value="{StaticResource ResourceKey=ListBoxItemBorderInactive}"/>
</DataTrigger>
</Border.Triggers>
</Border>
Bekomme ich diesen Fehler
Failed object initialization (ISupportInitialize.EndInit).
Triggers collection members must be of type EventTrigger.
Error at object '4_T' in markup file
Was mache ich falsch, Hilfe plz.
InformationsquelleAutor der Frage Tan | 2010-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abe ist richtig und erklärt die Einschränkungen gut. Eine Sache, die Sie berücksichtigen sollten, ist:
Statt zwei Rahmenarten, und versuchen, zu wählen zwischen Ihnen, basierend auf einem trigger...
Verwenden Sie einen einzigen Stil auf Ihre Grenze, dieser Stil der setter vertreten Ihre 'normal' Aussehen.
Dieser Stil beinhaltet auch Ihre DataTrigger, und Ihre DataTrigger hat eine Sammlung von Set-Methoden, die im wesentlichen stellt Ihre zweite Stil (die haben eine höhere Priorität als die standard-setter, wenn diese trigger, die zu true ausgewertet wird!
Edit:
Etwas -
InformationsquelleAutor der Antwort Scott
Leider nur
EventTriggers
können direkt angewendet werden, um Elemente. Wenn Sie verwenden wollen einTrigger
oderDataTrigger
Sie haben, um in einemStyle
ControlTemplate
oderDataTemplate
.Aus der Ressource-Namen, wie es aussieht wird das ein
Border
innerhalb einerListBoxItem
ControlTemplate
. Man könnte Sie leicht bewegen Sie den Trigger in der Vorlage löst Sammlung.InformationsquelleAutor der Antwort Abe Heidebrecht
Hier ist ein Weg, für die keine Beschränkungen löst.
Beispiel:
Link Probe
Link-Komponente Github
InformationsquelleAutor der Antwort Ali Yousefie