如何在WPF中为特定的TreeViewItem切换ItemTemplate

时间:2013-01-14 19:45:57

标签: wpf treeview itemtemplate

在我的场景中,我希望能够让用户双击TreeViewItem来“编辑它”。在这种情况下,我希望将该项目展开(将TreeViewItems向下滑动,以便进行布局转换?),并显示和编辑表单以代替所选项目。所以,我的问题是,我可以通过切换双击项目的ItemTemplate来实现这一点吗?如果是这样,我不知道如何处理这个问题。

我在TreeViewItems上双击附加事件并且我可以在回调中访问TreeViewItem,我会在该点最佳地切换项目的ItemTemplate。我的TreeView是在静态资源中使用HierarchicalDataTemplate为ItemTemplate和ViewModels构建的,用于支持数据。

对此方法的任何指导或完成此方案的任何其他建议表示赞赏!

1 个答案:

答案 0 :(得分:0)

您可以为点击的TreeViewItem动态更改ItemTemplate。
这样做是DependencyObject.SetCurrentValue() 并且不要忘记恢复在更改之前应该保存的原始本地值。请使用ReadLocalValue()
您需要定义恢复原始模板的条件(可能在选择更改时。

您还可以尝试以更多MVVM方式完成任务 只需添加附加属性IsDoubleClicked,并将其设置为相应TreeViewItem的True 并为绑定到属性ItemTemplate的TreeViewItem的IsDoubleClicked添加触发器。