在我的视图模型中,我有一个命令执行对 Web 服务的异步调用以重新加载视图网格中的数据。视图模型完成后,如何在视图中通知 UIViewController,以便视图控制器可以在 UI 上调用 ReloadData?该命令不显示新视图,只是设置视图绑定的属性。
我能想到的选项之一是不要从视图模型对 Web 服务进行异步调用,并在我从命令自定义绑定模块的 command.execute() 返回后调用 reloaddata?这是正确的方法吗?也许使用信使?
谢谢马克
您可以使用RaisePropertyChanged
:
在您的视图模型中
private List<YourDataClass> _yourDataList;
public List<YourDataClass> YourDataList
{
get { return _yourDataList; }
set
{
_yourDataList = value;
RaisePropertyChanged(() => YourDataList);
}
}
在视图中
private YourViewModel _yourViewModel;
public YourViewConstructor()
{
//some your code
_yourViewModel = this.ViewModel as YourViewModel;
_yourViewModel.PropertyChanged += _yourViewModel_PropertyChanged;
//some your code
}
void LoginViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName.Equals("YourDataList "))
{
//Refresh List
}
}
`
如果您只想在数据列表中添加新项目,那么在添加呼叫之后
RaisePropertyChanged(() => YourDataList);