gpt4 book ai didi

WPF:在 TreeViewItem 中正确存储对象

转载 作者:行者123 更新时间:2023-12-04 17:59:56 26 4
gpt4 key购买 nike

为了在 TreeViewItem 中存储一个对象(比如一个类的实例),我目前将该对象存储在 TreeViewItem 中。的 Header然后覆盖 ToString该类的方法,以便它显示正确的字符串标题;然后我在一个事件中将对象转换回去。

这是实现这类事情的正确方法,还是有更好、更合适的方法?

最佳答案

“正确”的方法是添加 objectTreeView的(或 TreeViewItem 的)Items收藏和使用HierarchicalDataTemplate控制项目的呈现方式:

人物.cs:

public class Person
{
private readonly ICollection<Person> _children = new ObservableCollection<Person>();

public string Name { get; set; }

public ICollection<Person> Children
{
get
{
return _children;
}
}
}

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;
}

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>

关于WPF:在 TreeViewItem 中正确存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/718858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com