在我的场景中,我希望能够让用户双击TreeViewItem来“编辑它”。在这种情况下,我希望将该项目展开(将TreeViewItems向下滑动,以便进行布局转换?),并显示和编辑表单以代替所选项目。所以,我的问题是,我可以通过切换双击项目的ItemTemplate来实现这一点吗?如果是这样,我不知道如何处理这个问题。
我在TreeViewItems上双击附加事件并且我可以在回调中访问TreeViewItem,我会在该点最佳地切换项目的ItemTemplate。我的TreeView是在静态资源中使用HierarchicalDataTemplate为ItemTemplate和ViewModels构建的,用于支持数据。
对此方法的任何指导或完成此方案的任何其他建议表示赞赏!
答案 0 :(得分:0)
您可以为点击的TreeViewItem
动态更改ItemTemplate。
这样做是DependencyObject.SetCurrentValue()
并且不要忘记恢复在更改之前应该保存的原始本地值。请使用ReadLocalValue()
。
您需要定义恢复原始模板的条件(可能在选择更改时。
您还可以尝试以更多MVVM方式完成任务
只需添加附加属性IsDoubleClicked
,并将其设置为相应TreeViewItem
的True
并为绑定到属性ItemTemplate
的TreeViewItem的IsDoubleClicked
添加触发器。