Hallo,
ich will anhand eines String im ViewModel einen Style auswählen.
<UserControl.Resources>
<Style TargetType="{x:Type TreeViewItem}" x:Key="WithCheckbox">
<Style.Triggers>
<Trigger Property="HasItems" Value="True">
<Setter Property="Focusable" Value="False" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type TreeViewItem}" x:Key="Normal">
<Style.Triggers>
<Trigger Property="HasItems" Value="True">
<Setter Property="Focusable" Value="False" />
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<TreeView ItemsSource="{Binding Items}" ItemContainerStyle="{StaticResource ResourceKey={Binding ResourceKeyString}}">
Leider klappt das nicht, er sagt mir, dass er das Bidning nicht findet.
Im VM ist dieses aber vorhanden :
public string ResourceKeyString { get { return "Normal"; } }
Oder macht man das anders ?
Grüße
Hi,
danke für die Antwort.
Eine Frage dazu :
Ich will auf ein gewisses ViewModel reagieren und dann die property aller treeViewItems setzten.
Dazu muss ich doch nur abfragen ob der typ des Items meinem ViewModel entspricht und dann die passenden Trigger setzten oder ?
Grüße
Dazu muss ich doch nur abfragen ob der typ des Items meinem ViewModel entspricht und dann die passenden Trigger setzten oder ?
Oder den "ResourceKeyString" - oder was anderes "benutzerdefiniertes".
Der Selector kann den Style auch über die Resource zurückgeben, sodass weiteres Anpassen auch über XAML/Blend möglich ist.