我有一个在 wpf 和 mvvm 中使用 treeview 的应用程序。treeitem 模板包含一个文本框,供用户输入或更改字段数据。如果用户在编辑时按下制表符,我想它是否会移动到下一个可见的树项文本框并允许他们开始编辑它。这可能吗?我可以抓住 tab 键,但不知道如何移动到下一个项目
问问题
429 次
1 回答
0
好的,我不确定这是最干净的方法,但我找到了一种方法,它似乎没有受到速度问题的影响,所以它现在可以工作,如果有人有一个更干净的答案,仍然会感兴趣。这是我所做的:
我使用了一种类似于此处引用的方法来获取 TreeView 中所有文本框的集合。然后我将“发送者”用于 KeyDown 事件,转换为文本框,并得到它的 datacontext,这是我对该节点的视图模型。然后我使用我的整体视图模型来查找下一个可见节点的视图模型(通过两种方式绑定到“IsExpanded”非常容易)。最后,我遍历了开始时找到的所有文本框,直到我找到一个 datacontext 是下一个可见视图模型并在其上调用 Keyboard.Focus(myTextBox)。
就像我说的那样,似乎应该有一种更清洁的方法,但它现在有效......
于 2012-10-18T03:51:38.080 回答