【发布时间】:2013-03-29 13:57:56
【问题描述】:
如何创建像这样的树视图:
<TreeViewItem Header="Customers" ItemsSource="{Binding Customers}">
- 客户
- 安娜
- 删除
- 打开
- 彼得
- 删除
- 打开
- 安德鲁
- 删除
- 打开
- 安娜
我想创建类似这样的子项模板
<TreeViewItem Header="{Binding Header}">
<TreeViewItem Header="Delete"/>
<TreeViewItem Header="Open"/>
</TreeViewItem>
但它并不能很好地工作,因为我最终拥有带有 datatemplate treeviewitem 的 treeviewitem,但我想覆盖子元素的 controltemplate,而不是父元素。 当然,我想避免我的绑定是 TreeViewItem,也不想用那些静态对象“打开”、“删除”来创建子项。
【问题讨论】:
-
删除和打开只是动作吗?
-
是的,这些对于所有树项都是不变的,所以我想在 XAML 中构建它们。这就是为什么我想使用 TreeViewItem 作为 DataTemplate (这显然是错误的,但你明白我的想法)
-
您真的需要使用 TreeView 还是只是想要类似的项目排列方式?
-
现有设计使用TreeView。但是在现有的设计中,这些节点是在代码隐藏中构建的。太可怕了。我想改进静态子项目并将其移动到 XAML,而不是在后面的代码中使用 TreeViewItems 填充 TreeView,然后使用字符串比较来识别单击了哪个项目! ;)
标签: c# wpf mvvm treeview treeviewitem