1. 程式人生 > >wpf 繫結資料無法更新ui控制元件可能存在的問題

wpf 繫結資料無法更新ui控制元件可能存在的問題

BindingMode的列舉值有:

① OneWay
② TwoWay
③ OneTime:根據源端屬性值設定目標屬性值,之後的改變會被忽略,除非呼叫BindingExpression.UpdateTarge方法
④ OneWayToSource:與OneWay類似,但方向相反,用於目標屬性是非依賴項屬性的情況
⑤ Default:預設值,根據目標屬性確定繫結型別.依賴項屬性都由一個元資料 FrameworkPropertyMetadata.BindsTwoWayByDefault用於標識oneway繫結還是twoway繫結

從目標到繫結源端資料更新時(binding mode為twoway或者onewaytosource),更新行為(什麼時機更新)由Binding.UpdateSourceTrigger列舉屬性控制,
UpdateSourceTrigger的值有:

① PropertyChanged:目標屬性發生變化時立即更新

② LostFocus:目標屬性發生變化並且目標丟失焦點時更新源

③ Explicit:除非呼叫BindingExpression.UpdateSource()方法,否則無法更新

④ Default:根據目標屬性的元資料(FrameworkPropertMetadata.DefaulUpdateSourceTrigger)確定更新行為,大多數屬性預設行為是PropertyChanged

繫結的資料所在的類實現INotifyPropertyChanged介面,屬性的set中this.PropertyChanged

(this, new PropertyChangedEventArgs("屬性名"));

繫結的是屬性,非資料成員資料操作改變必須用屬性