2010-12-13 78 views
7
<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" /> 

「Name」是在運行時與TextBlock綁定的對象的屬性。我已經實現了INotifyPropertyChanged,所以代碼工作正常。我的問題是:如果我將PropertyChanged替換爲Default,它仍然可以工作?他們之間有什麼區別?UpdateSourceTrigger的默認vs PropertyChanged?

回答

10

MSDN,該UpdateSourceTrigger的默認值是PropertyChanged的大多數屬性和LostFocusTextBox.Text財產。

對於您的情況,您可能會綁定到默認設置爲PropertyChanged的屬性,因此您不會看到任何區別。

1

PropertyChanged告訴Binding無論何時您收到該屬性的PropertyChanged通知,都會將其更新爲目標值。

對於某些控件,如TextBox,使用Default,它僅在例如失去焦點時更新綁定目標。當您設置UpdateTrigger='PropertyChanged'時,它將在您輸入時更新綁定目標。

0

對於TextBox控件 當我們使用UpdateSourceTrigger = Default時,意味着當源對象失去焦點時,target中的值將被更新。 當我們使用UpdateSourcetrigger = PropertyChanged時,意味着當源對象文本發生變化時(即使我們鍵入單個字符)立即比變化會反映在目標中。 以上情況是針對TextBox控件的,默認情況下爲大多數控件僅爲PropertyChanged

相關問題