分层数据结构WPF TreeListView
我目前正在编写一个WPF TreeListView。 我想知道一些事情。分层数据结构WPF TreeListView
分层数据结构如何工作,并且子项可以显示其他属性而不是与父项相同的属性? 目前,我试图让treelistview与列
客户端/物/小时
如果我添加一个客户端,它具有相同的事情再 家长会改变它的小时总小时就到了儿童累计的总小时数。
下面是一个例子
我添加
约翰/书写纸/1小时
约翰/书写纸/2小时
约翰/书写纸/ 1.5小时
我的树列表视图将显示
约翰/书写纸/3.5小时<这是父母
-John /书写纸/1小时
-John /书写纸/2小时
-John /书写纸/ 1.5小时<这些都是孩子
相反,我想它显示
约翰/书写纸/ 3.5小时
- 12:00 - 下午1:00 /写引进
- 下午2:00 - 下午4:00 /写的身体
- 下午3:00 - 3 :30 pm /写下结论
我正在使用两个可观察集合。一个是父母,另一个是孩子。
我的问题基本上是。我可以更改分层数据结构以显示不同的属性吗?不同的信息。我不希望重复显示相同的客户端时间。 相反,我想为孩子展示不同的属性。由于父母将显示这些信息属于谁。 顺便说一句,我想为XAML和C#
在此先感谢!
-Kevin
您可以为HierarchicalDataTemplate设置DataTrigger并具有不同的属性绑定。下面是一个例子。Please check this earlier answer in this thread just in case you need more ideas.
<HierarchicalDataTemplate DataType="{x:Type local:Person}" ItemsSource="{Binding People}" >
<Grid>
<TextBlock x:Name="fName" Text="{Binding FirstName}"/>
<TextBlock x:Name="lName" Text="{Binding LastName}" Visibility="Collapsed"/>
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding State}" Value="A">
<Setter TargetName="fName" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="lName" Property="Visibility" Value="Visible"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
如果你的父母和孩子都是不同的对象类型,有一个很简单的答案:
<TreeView ItemsSource="{Binding Parents}">
<TreeView.ResourceDictionary>
<HierarchicalDataTemplate
TargetType="{x:Type my:ParentType}"
ItemsSource="{Binding Children}">
... parent content ...
</HierarchicalDataTemplate>
<HierarchicalDataTemplate
TargetType="{x:Type my:ChildType}"
ItemsSource="{Binding Children}">
... child content ...
</HierarchicalDataTemplate>
</TreeView.ResourceDictionary>
</TreeView>
这种技术不工作:只要在ResourceDictionary中使用多个HierarchicalDataTemplates在所有情况下,但是当它发生时,它是非常强大和富有表现力的。
在此另一种变型,如果父母与孩子的类型相同但具有不同的参数是创建一个ItemTemplateSelector
调用LoadResource()
加载取决于数据值命名HierarchicalDataTemplate
适当的。
这将无法正常工作,因为Hierarchical DataTemplate只接受儿童权利? – Kevin 2009-11-16 22:36:20
哎呀,它周围放了一个网格.. – 2009-11-16 22:40:27