2013-03-18 70 views
0

在WPF上,我有一個窗口,其中一個或多個文本框綁定到同一個屬性。獲取導致綁定的控件

在我的Set()函數上,我希望能夠知道哪個控件導致綁定。

我想知道,如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件中挑出來的。

你有一個想法如何做到這一點?

+0

你想要什麼? – 2013-03-18 21:02:50

+0

您的viewmodel不應該知道任何視圖元素,如文本框。請詳細說明你想達到的目標。 – 2013-03-18 21:19:59

+0

我編輯我的文章:我想知道,如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件引出來的。 – 2013-03-19 10:14:32

回答

1

您可以命名xaml中的每個文本框,然後在文本框中設置一個事件來檢查它是否發生了更改,如下所示?

<TextBox Mame="textBox1" TextChanged="OnTextChanged"/> 

這樣你會得到一個事件調用,你可以做任何你想要在代碼事件調用的背後,像這樣。

private void OnTextChanged(object sender, RoutedEventArgs e) 
    { 
     var textbox= sender as TextBox; 
     if(textbox.Name=="textBox1") 
      //Do Something 

    } 
+0

我想知道如果驗證是錯誤的,爲了強制焦點留在這個控件中,這個綁定是從哪個控件引發的。 – 2013-03-19 10:15:47

+0

上面的代碼應該告訴你哪個控件在綁定過程中發生了變化,你只需要將剩下的文本框添加到你的xaml和後面的代碼中。如果該控件受到綁定的影響,則會觸發'if'語句。從那裏你可以決定如何處理這個控制。 – 2013-03-19 15:03:05