[英]Binding Issue constructor viewmodel
我對mvvm比較陌生,但是我對從視圖模型進行綁定存在疑問。 我有一個viewmodel,在它的構造函數中,我想填充一個observablecollection。 我的構造函數如下所示:
public StudySelectionViewModel() : base() {
_studyRepository = StudyRepository.Instance;
InitializeViewModelData();
}
InitializeViewModelData()看起來像這樣:
private void InitializeViewModelData() {
_studyRepository.RetrieveModalityTypes();
RaisePropertyChanged("ModalityTypes");
}
我的屬性ModalityTypes看起來像這樣:
public ObservableCollection<ModalityType> ModalityTypes {
get {
return _studyRepository.ModalityTypes;
}
}
不用說,我的存儲庫會調用數據庫並檢索數據。 調試時,看起來RaisePropertyChanged比我的_studyRepository.RetrieveModalityTypes方法執行得更早,因此它綁定到一個空屬性。
我在這里想念什么嗎? 我的設計不好嗎? 有任何想法嗎?
提前致謝,
表單初始化時,綁定將檢查屬性。 當引發PropertyChanged
通知時,它還將檢查屬性-因此您可能會兩次調用該屬性的getter
我假設您獲取數據的電話是網絡服務電話還是其他電話? Silverlight是異步的,因此您需要考慮初始化表單后,Web服務調用可能會返回
這里有兩件事要考慮。
如果確實必須在數據服務數據就緒回調中用新集合替換集合,那么請確保您這樣編寫集合設置器:
public ObservableCollection<ModalityType> ModalityTypes { get { return _studyRepository.ModalityTypes; } set { this.__studyRepository.ModalityTypes = value; RaisePropertyChanged("ModalityTypes"); {
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.