我尝试使用倍数级别创建TreeView
但只有一种类型(IPermission
)
这样的事情:
--[X] Permission1
----[X] Permission1_1
------[] Permission1_1_1
----[] Permission1_2
----[] Permission1_3
--[X]Permission2
并且可以选择CheckBox
作为每个级别。
这是我的目标:
public interface IPermission
{
int ParentID { get; set; }
int ID { get; set; }
string Title { get; set; }
bool Value { get; set; }
List<IPermission> Children { get; set; }
}
我与HierarchicalDataTemplate
/ DataTemplate
/ CompositeCollection
合作,但未找到解决方案。
以下是我所做的一个例子:
<TreeView>
<TreeViewItem Header="Nom" ItemsSource="{Binding Permissions}">
<TreeViewItem.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<StackPanel Orientation="Horizontal">
<CheckBox Margin="2" Tag="{Binding Path=Value}" />
<TextBlock Text="{Binding Path=Title}" FontWeight="SemiBold" />
</StackPanel>
</HierarchicalDataTemplate>
<!-- How to display the Children ? -->
</TreeViewItem.ItemTemplate>
</TreeViewItem>
</TreeView>
答案 0 :(得分:1)
您的XAML标记不正确。
您需要在ItemTemplate
中定义TreeView
,而不是TreeViewitem
。
其次,您需要设置ItemsSource
的{{1}}才能显示对象层次结构。
此外,为什么要绑定HierarchicalDataTemplate
的{{1}}属性而不是使用Tag
属性?
CheckBox