J'ai un TreeView
où chaque élément a une case à cocher. Je veux qu'un TextBlock
soit mis à jour chaque fois qu'un élément est coché ou décoché dans le TreeView
. Le TextBlock
Text
devrait être lié à la propriété CheckedVersions
sur mon DataContext
de sorte que quand j'ai lu la propriété CheckedVersions
, il me donne une chaîne représentant tous les articles vérifiés dans le TreeView
. Les éléments cochés doivent être représentés dans une chaîne séparée par des points-virgules. Quelle serait la meilleure façon de faire cela? Je le XAML suivant:WPF, mise à jour de TextBlock lorsque CheckBox est cochée
<XmlDataProvider Source="XmlData/Versions.xml" XPath="//*[count(*)=0]"
x:Key="versionsXml"
IsInitialLoadEnabled="True" IsAsynchronous="False" />
<HierarchicalDataTemplate x:Key="versionTemplate">
<CheckBox Focusable="False" IsChecked="{Binding Path=IsChecked}"
Content="{Binding Path=Name, Mode=OneTime}"/>
</HierarchicalDataTemplate>
<TreeView x:Name="trv_version"
ItemsSource="{Binding Path=Versions, Mode=OneWay}"
ItemTemplate="{StaticResource versionTemplate}" />
<TextBlock x:Name="txb_version" Text="{Binding Path=CheckedVersions}"
TextWrapping="Wrap" />
Chaque élément de mon TreeView
est une instance de ma classe VersionViewModel
, qui met en œuvre INotifyPropertyChanged
et avertit lorsque les IsChecked
changements de propriété. Il semble que je devrais être en mesure d'accrocher à cela afin que lorsque IsChecked
change sur une instance VersionViewModel
dans les mises à jour TreeView
, CheckedVersions
. Peut-être que si je mets UpdateSourceTrigger
sur la liaison Text
dans le TextBlock
? Mais que dois-je faire?