在決定要Binding元件之前,先要檢查要Binding的資料本身的特性。
如果想讓Binding的物件能反映資料的改變,則資料的本身必需繼承自INotifyPropertyChanged,透過OnPropertyChanged發送事件讓物件更新。
如果物件的集合在程式運作過程中不會有增減的特性,則將繼承自INotifyPropertyChanged的元件套入List<T>模版中即可
如果物件的集合在程式的執行過程中會動態的增減,則繼承自INotifyPropertyChanged的元件必需套入 ObservableCollection<T>模版。
由於要Binding ListBox屬於UI元件,若資料的增減行為是發生在非同步的執行緒中,則會發生UI元件在不同執行緒運作的錯誤,所以必需記錄GUI元件所在的Window,讓元件增減的處理發生在Window相同的執行緒中。
沒有留言:
張貼留言