.net - 为自定义 TreeViewItem 自动生成名称

标签 .net wpf visual-studio-2010 design-time

我有一个派生自 TreeviewItem(自定义 TreeViewItem)的类,该类被派生自 Treeview(自定义 Treeview 控件)的类使用。
当我的控件的用户使用默认设计时集合编辑器将项目添加到我的自定义 TreeView 时,我希望新添加的项目具有默认名称(如 MyNode1、MyNode2 等),并且我希望它以 XAML 编写。
关于如何做到这一点的任何想法?
我注意到,当您从工具箱中删除一个控件时,它会分配一个默认名称。如果可能的话,我想为我的树节点类重用 Visual Studio 2010 中的现有机制。

最佳答案

TreeView s 和 TreeViewItem s 是用户界面控件,不应用于存储任何需要保存的信息。相反,您应该创建一个分层数据类型来存储您的信息,将其绑定(bind)到 TreeView.ItemsSource属性(property)并提供HierarchicalDataTemplate根据需要显示数据。

这样,您可以将新项目添加到 TreeView通过简单地将新的数据类型对象添加到您的 View 模型或代码后面的绑定(bind)集合中。您可以在将对象添加到集合之前为对象分配您想要的任何值,并且它们都可以在任何时候从集合中访问。

关于.net - 为自定义 TreeViewItem 自动生成名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002085/

相关文章:

c# - 什么递归地创建新实例?

wpf - 使用附加命令为 ListView 触发双击事件-MVVM

c# - 确认文件已下载

c# - 重新加载后图片框丢失绘图

.net - 在 VSTO Excel 项目中创建弹出日历

c# - 无法让 WPF ItemsControl 垂直拉伸(stretch)

c++ - 编译错误会随着单行上的注释/调试/取消注释/调试而消失

.net - 强制代码合约使用 sn.exe 4.0

visual-studio-2010 - QTAGENT.EXE 使用所有可用的 CPU

c# - .NET 缓存滑动过期如何工作?