通過複製/粘貼等標準WPF命令,他們似乎都可以使用一個按鈕並在文本框上執行操作。我的問題:當我有一個按鈕時,如何使用命令,但我需要在兩個單獨的控件(文本框和組合框)中設置數據。如果用戶在文本框中編寫了文本,但未選擇組合框值,則CanExecute應該失敗。這適用於已設置組合框但不包含文本框的情況。作用於兩個控件的命令
在我的情況下,所有這些控件都包裝在一個tabitem中。另外,我還有另一個只有文本框和按鈕的選項卡。我希望它具有與第一個選項卡相同的功能,除了檢查組合框值以外,它應檢測到沒有組合框並傳入默認的「空對象」值。
Execute方法應該在我的viewmodel中調用一個方法,並從combobox和textbox傳入值。同樣,每個選項卡應該傳遞另一個唯一的靜態值;我想我可以使用commandparameter來處理這個問題。
我該如何做這項工作?我是否可以在can/execute方法中將父標籤作爲commandtarget並直接引用其子控件?
文本框僅僅是一個壞榜樣。即使WPF有很多「預定義」的命令,如ApplicationCommands中的命令。其中沒有任何事情。它只是爲了命名和給命令一個捷徑。恰巧TextBox已經實現了這些命令。這就是你需要做的,爲你想要的命令提供一個Execute和CanExecute Handler。檢查命令綁定的msdn。 – dowhilefor 2012-02-27 21:37:06
嘿dowhilefor,感謝您的提示,但我已經熟悉一般命令的概念,我只需要幫助我的特定情況,我從來沒有見過: 1.如何執行命令時,他們的工作兩個控件(每個示例僅適用於來自一個控件的輸入)。我提出了我提出的解決方案,但它涉及(直接)引用一個控件,這聽起來像一個糟糕的主意。 2.解決問題1後,如何區分提供相同功能的兩個選項卡? – FZdev 2012-02-27 21:54:26
通常在當前焦點的控件上觸發命令。因此,即使您有兩個文本框,它們也會分別處理撤銷命令,具體取決於焦點所在的位置。你是這個意思嗎? – dowhilefor 2012-02-27 22:02:02