在WPF上,我有一個窗口,其中一個或多個文本框綁定到同一個屬性。獲取導致綁定的控件
在我的Set()
函數上,我希望能夠知道哪個控件導致綁定。
我想知道,如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件中挑出來的。
你有一個想法如何做到這一點?
在WPF上,我有一個窗口,其中一個或多個文本框綁定到同一個屬性。獲取導致綁定的控件
在我的Set()
函數上,我希望能夠知道哪個控件導致綁定。
我想知道,如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件中挑出來的。
你有一個想法如何做到這一點?
您可以命名xaml中的每個文本框,然後在文本框中設置一個事件來檢查它是否發生了更改,如下所示?
<TextBox Mame="textBox1" TextChanged="OnTextChanged"/>
這樣你會得到一個事件調用,你可以做任何你想要在代碼事件調用的背後,像這樣。
private void OnTextChanged(object sender, RoutedEventArgs e)
{
var textbox= sender as TextBox;
if(textbox.Name=="textBox1")
//Do Something
}
我想知道如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件引發的。 – 2013-03-19 10:15:47
上面的代碼應該告訴你哪個控件在綁定過程中發生了變化,你只需要將剩下的文本框添加到你的xaml和後面的代碼中。如果該控件受到綁定的影響,則會觸發'if'語句。從那裏你可以決定如何處理這個控制。 – 2013-03-19 15:03:05
你想要什麼? – 2013-03-18 21:02:50
您的viewmodel不應該知道任何視圖元素,如文本框。請詳細說明你想達到的目標。 – 2013-03-18 21:19:59
我編輯我的文章:我想知道,如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件引出來的。 – 2013-03-19 10:14:32