And*_*ech 5 wpf treeview casting
为了在TreeViewItem中存储一个对象(比如一个类的实例),我当前正在将该对象存储在TreeViewItems中Header,然后覆盖ToString该类的方法,以便它显示正确的字符串头; 然后我在活动期间将物体投回.
这是实现这种事情的正确方法,还是有更好,更正确的方法?
"正确"的方法是只添加object到TreeView's(或TreeViewItem's)Items集合并使用a HierarchicalDataTemplate来控制项目的呈现方式:
Person.cs:
public class Person
{
private readonly ICollection<Person> _children = new ObservableCollection<Person>();
public string Name { get; set; }
public ICollection<Person> Children
{
get
{
return _children;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Window1.xaml.cs:
public Window1()
{
InitializeComponent();
var people = new List<Person>();
var kent = new Person() { Name = "Kent" };
kent.Children.Add(new Person() { Name = "Tempany" });
people.Add(kent);
_treeView.ItemsSource = people;
}
Run Code Online (Sandbox Code Playgroud)
Window1.xaml:
<TreeView x:Name="_treeView">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Person}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5024 次 |
| 最近记录: |