0

在我的场景中,我希望能够让用户双击 TreeViewItem 来“编辑它”。在这种情况下,我希望该项目就地展开(将其下方的 TreeViewItems 向下滑动,所以布局转换?),并显示和编辑表单以代替所选项目。所以,我的问题是,我可以通过为双击项目切换 ItemTemplate 来完成此操作吗?如果是这样,我不确定如何处理这个问题。

我双击了在 TreeViewItems 上工作的附加事件,并且我可以在回调中访问 TreeViewItem,此时我最好切换出该项目的 ItemTemplate。我的 TreeView 是使用静态资源中的 HierarchicalDataTemplate 构建的,以便 ItemTemplate 和 ViewModels 支持数据。

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

4

1 回答 1

0

您可以为 clicked 动态更改 ItemTemplate TreeViewItem
调用它DependencyObject.SetCurrentValue()
并且不要忘记恢复在更改之前应该保存的原始本地值。用于ReadLocalValue()此。
您需要定义何时恢复原始模板的条件(可能在选择更改时。

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

于 2013-01-14T22:49:24.137 回答