Ich habe ein ViewModel, das eine beobachtbare Objektgruppe namens AllNodesAndEntries
enthält. Jedes Element hat eine boolesche Eigenschaft IsEnabled
. Jetzt möchte ich die Elemente in einem TreeView anzeigen und die IsEnabled
-Eigenschaft jedes TreeViewItem an die IsEnabled
-Eigenschaft des zugrunde liegenden Elements des ViewModel binden. Wie mache ich das?TreeViewItem.IsEnabled an die ViewModel-Eigenschaft für jedes TreeViewItem binden
Hier ist mein TreeView. Es gibt zwei verschiedene Arten von Artikeln (Node
und Entry
), also habe ich eine hierarchische und eine normale Datenvorlage.
<TreeView ItemsSource="{Binding AllNodesAndEntries}">
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:Node}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:Entry}">
<TextBlock Text="{Binding Name}""/>
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<!-- How do I bind to TreeViewItem.IsEnabled to IsEnabled? -->
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
Es scheint, dass ich es nicht innerhalb TreeView.ItemContainerStyle
tun kann, denn da kann ich nur Setter definieren. Setter erlauben jedoch nicht, den Wert zu binden ...
Setter erlauben Bindung der Wert ... Wie schreibt man Bindungen? – ASh
Okay, ich dachte, dass erlaubte Syntax nur das ist, was beim Tippen auftaucht. Und als ich "Value =" "' tippte, zeigte es mir nur 'True' und' False'. Lektion gelernt, danke! – Kjara