我有一个应用程序在wpf和mvvm中使用treeview。 treeitem模板包含一个文本框,供用户输入或更改字段数据。我想如果用户按Tab键进行编辑,如果它将移动到下一个可见的treeitem文本框并允许他们开始编辑它。这可能吗?我可以抓住tab键但无法弄清楚如何移动到下一个项目
答案 0 :(得分:0)
好的,我不确定它是最干净的方式但是我找到了一种方法来做它并且它似乎没有受到速度问题的影响因此它现在可以工作,仍然是如果有人有一个更清洁的答案感兴趣。这是我做的:
我使用类似于引用here的方法来获取TreeView中所有文本框的集合。然后我使用了发件人'对于KeyDown事件,转换为文本框,并获得它的datacontext,这是我对该节点的视图模型。然后我使用我的整体viewmodel来查找下一个可见节点的视图模型(通过双向绑定到'#Ex;展开'#39;)非常容易。最后,我迭代了在开始时找到的所有文本框,直到我发现一个人的datacontext是下一个可见视图模型,并在其上调用了Keyboard.Focus(myTextBox)。
就像我说的那样,似乎应该有一种更清洁的方式,但它现在有用......