我正在编写旨在解决标准问题的 WPF 应用程序。我对 WPF 和 MVVM 模式真的很陌生,所以在阅读了互联网上大量不同的 MVVM 方法后,我的脑子里有些混乱。我想知道我对 DataGrid 的 itemsource 刷新操作的简单操作对 MVVM 来说是“惯用的”。
假设我有一个数据网格和一个组合框。该组合包含所有教练的列表。数据网格向您显示由选定教练训练的所有运动员,因此该组合就像数据网格中数据的过滤器:
<ComboBox ItemsSource="{Binding ListCoach}" DisplayMemberPath="last_name" SelectedValue=
"{Binding SelectedCoach}" SelectedValuePath="Id"/>
<DataGrid ItemsSource="{Binding Path=ListSportsman}" ..... </DataGrid>
我的 ViewModel 类在 SelectedCoach 属性的设置器中更改 DataGrid 的内容(此属性是 Combobox 值的目标):
private int _selectedCoach;
public int SelectedCoach
{
get { return _selectedCoach; }
set
{
_selectedCoach = value;
ListSportsman = new ObservableCollection<sportsmanset>(_serviceAgent.ListSportsmanOfCoach(value));
NotifyPropertyChanged(vm => vm.SelectedCoach);
}
}
这样的代码没有味道吗?或者订阅 SelectedCoach 属性的更改并在单独的函数中设置 ListSportsman 会更合适?(顺便问一下,如何手动订阅 NotifyPropertyChanged 事件?)