WPF-Datentrigger wird nicht ausgelöst, wenn er erwartet wird
Habe ich folgenden XAML-Code:
<TextBlock Text="{Binding ElementName=EditListBox, Path=SelectedItems.Count}" Margin="0,0,5,0"/>
<TextBlock Text="items selected">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=EditListBox, Path=SelectedItems.Count}" Value="1">
<Setter Property="TextBlock.Text" Value="item selected"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Den ersten text-block gerne änderungen mit SelectedItems.Zählung, zeigt 0,1,2, usw. Der datatrigger auf den zweiten block scheint nie Feuer um den text zu ändern.
Irgendwelche Gedanken?
InformationsquelleAutor der Frage 17 of 26 | 2008-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den DataTrigger wird brennen, aber das Textfeld für Ihre zweite TextBlock ist hart codiert als "ausgewählte Elemente", damit es nicht in der Lage sein, sich zu ändern. Sehen Sie es brennen, und Sie können Sie entfernen, Text="ausgewählte Elemente".
Dein problem ist ein guter Kandidat für die Verwendung einer ValueConverter statt DataTrigger. Hier ist, wie Sie erstellen und verwenden Sie die ValueConverter, um es zu bekommen, um den Text zu, was Sie wollen.
Erstellen dieser ValueConverter:
Fügen Sie den namespace Verweis auf die assembly, in der der Konverter befindet sich:
Fügen Sie den Konverter, um Ihre Ressourcen:
Ändern Sie Ihre zweite textblock:
InformationsquelleAutor der Antwort Alan Le
Alternativ können Sie ersetzen Sie Ihren XAML-Code mit diesem:
Konverter können Sie lösen eine Menge der Bindung Probleme, aber mit einer Menge von speziellen Wandler wird sehr chaotisch.
InformationsquelleAutor der Antwort Robert Macnee