我的同事今天威胁要把我放在TheDailyWTF,因为我写的属性是用来建立一个带有ItemsControl的3层树视图。
我告诉你足迹:
ObservableCollection<KeyValuePair<string, ObservableCollection<KeyValuePair<string, ObservableCollection<MyType>>>>>;
我的目标是创建一个ItemsControl,它将Key用作标题,Value作为ItemsSource用于3个级别:
<Style x:Key="filterTreeStyle" TargetType="ItemsControl">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<controls:TreeViewItem IsExpanded="True">
<controls:TreeViewItem.Header>
<controlsToolkit:TreeViewItemCheckBox Content="{Binding Key}"/>
</controls:TreeViewItem.Header>
<ItemsControl ItemsSource="{Binding Value}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<controls:TreeViewItem>
<controls:TreeViewItem.Header>
<controlsToolkit:TreeViewItemCheckBox Content="{Binding Key}"/>
</controls:TreeViewItem.Header>
<controlsToolkit:TreeViewItemCheckBox IsChecked="{Binding Enabled}" Content="{Binding FilterTypeText}"/>
</controls:TreeViewItem>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</controls:TreeViewItem>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
任何人都可以从TheDailyWTF的魔掌中拯救我吗?什么是更简洁的方法来做到这一点。如果我们能找到一种方法来使动作数量变得动态,那就可以获得奖励。
答案 0 :(得分:3)
TreeView内置于WPF中,并作为SDK的一部分在Silverlight中提供。