所以我的UserControl
中有一個DataGrid
。它是我的視圖模型中observable collection
的數據綁定。 ViewModel實現了INotifyPropertyChanged
接口,並在視圖中進行了適當的連接。當查詢被觸發時Datagrid不會更新
筆者認爲:
<DataGrid AutoGenerateColumns="False"
EnableRowVirtualization="True"
ItemsSource="{Binding ContributionCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<!-- DataGrid rows -->
/>
,並在視圖模型:
private ObservableCollection<contribution> _contributionCollection;
public ObservableCollection<contribution> ContributionCollection
{
get
{
return _contributionCollection;
}
set
{
_contributionCollection= value;
OnPropertyChanged("ContributionCollection");
}
}
是什麼意思發生,是;只需點擊一個特定的按鈕,查詢就會觸發數據庫並帶回一些結果。這些結果意味着在Datagrid中顯示。
// Fired by an ICommand Property
public object Contributions_CommandExecute(object param)
{
var queryContributions = context.contributions.Where(c => c.member == Member);
return _contributionCollection = new ObservableCollection<contribution>(queryContributions);
}
但是datagrid總是空的。該應用程序凍結了一段時間,表明背景中正在發生某些事情,但實際上沒有任何事情在視圖上傳達。事實上,它唯一正常工作的時間是ViewModel構造函數在初始化時觸發查詢。但之後呢,它不會再發射了。
任何想法,我要去哪裏錯了?
深表謝意。除此之外,事實證明我也忘了添加'INotifyPropertyChanged'接口。 – Offer