在我的viewmodel中,我有一个命令,它对Web服务执行异步调用,以重新加载视图网格中的数据。一旦视图模型完成,如何在视图中通知UIViewController,以便视图控制器可以在UI上调用ReloadData? 该命令不显示新视图,只设置按视图绑定的属性。
我能想到的一个选项是不是从视图模型异步调用Web服务,并且一旦从命令自定义绑定模块的command.execute()返回,就调用reloaddata?这是正确的方法吗?也许使用信使?
谢谢 标记
答案 0 :(得分:1)
您可以使用RaisePropertyChanged
:
在您的ViewModel中
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);