TreeView控件实践
来源:互联网 发布:sql union 合并 编辑:程序博客网 时间:2024/05/27 00:32
TreeView控件可以通过HierarchicalDataTemplate 和 DataTemplate来自定义。
1)HierarchicalDataTemplate用来支持HeaderedItemsControl,其中DataType指定当前的数据类型, 只有符合这个类型才使用HierarchicalDataTemplate;ItemsSource用来指定ItemsHost;内部的自定义实现(TextBlock)指定当前数据类型如何渲染,注意:不是子节点。
<HierarchicalDataTemplate DataType = "{x:Type src:League}"
ItemsSource = "{Binding Path=Divisions}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
ItemsSource = "{Binding Path=Divisions}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
2)对于TreeView控件, 我们可以只指定一个HierarchicalDataTemplate, 而保证数据结构每层的ItemSource的类型名一样, 每层的数据层需要渲染的数据一样。
public class Node
{
public string Name {get; set;}
public string Id {get; set;}
public List<Node> Nodes {get; set;}
}
{
public string Name {get; set;}
public string Id {get; set;}
public List<Node> Nodes {get; set;}
}
<HierarchicalDataTemplate ItemsSource = "{Binding Path=Nodes}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
3)另外一种就是如1)所示, 我们可以针对每层的数据层指定HierarchicalDataTemplate,
<Window x:Class="SDKSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="HierarchicalDataTemplate Sample"
xmlns:src="clr-namespace:SDKSample">
<DockPanel>
<DockPanel.Resources>
<src:ListLeagueList x:Key="MyList"/>
<HierarchicalDataTemplate DataType = "{x:Type src:League}"
ItemsSource = "{Binding Path=Divisions}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType = "{x:Type src:Division}"
ItemsSource = "{Binding Path=Teams}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type src:Team}">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</DockPanel.Resources>
<Menu Name="menu1" DockPanel.Dock="Top" Margin="10,10,10,10">
<MenuItem Header="My Soccer Leagues"
ItemsSource="{Binding Source={StaticResource MyList}}" />
</Menu>
<TreeView>
<TreeViewItem ItemsSource="{Binding Source={StaticResource MyList}}" Header="My Soccer Leagues" />
</TreeView>
</DockPanel>
</Window>
- TreeView控件实践
- 树状图 TreeView控件--添加/删除节点(亲自实践)
- TreeView控件
- TreeView 控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView 控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView控件
- treeview控件
- TreeView控件
- Treeview控件
- C# 表达式树(Expression)
- 自定义Panel中添加依赖属性需要注意的问题
- Unsharp Mask(USM)锐化算法的的原理及其实现
- TextBlock截断字符显示为....
- DataGrid 支持字符截断显示
- TreeView控件实践
- WPF如何更改系统控件的默认高亮颜色 (Highlight brush)
- Linux系统管理员应该了解的一些I/O统计工具
- 使用TortoiseGit来访问GitHub
- ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点
- Sublime 实践
- 网站架构资料收集整理
- PythonPath在Windows 下的设置
- Sublime Text: [Decode error - output not utf-8]