2012-10-03 60 views
0

我有一個應用程序,它使用wvf中的treeview和mvvm。 treeitem模板包含供用戶輸入或更改字段數據的文本框。我想如果用戶按下Tab鍵的時候編輯,如果它將移動到下一個可見的treeitem文本框,並允許他們開始編輯。這可能嗎?我可以捕捉Tab鍵,但不知道如何移動到下一個項目將鍵盤焦點移至下一個treeitem?

回答

0

好吧,我不確定它是最乾淨的方式,但我找到了一種方法來做到這一點,它似乎並沒有受到影響從速度問題,所以它現在工作,仍然會有興趣在一個更清晰的答案,如果任何人有一個。這是我做的:

我使用了一種類似於引用here的方法來獲取TreeView中所有文本框的集合。然後,我使用'sender'作爲KeyDown事件,將其轉換爲文本框,並獲得它的datacontext,這是我的該節點的視圖模型。然後,我用我的整體視圖模型來查找下一個可見節點的視圖模型(使用雙向綁定到'IsExpanded'非常簡單)。最後,我遍歷了開始時找到的所有文本框,直到我發現datacontext是下一個可見視圖模型並在其上調用了Keyboard.Focus(myTextBox)。

就像我說的,它似乎應該有一個更清潔的方式,但它現在的作品...

相關問題