0

在我的视图模型中,我有一个命令执行对 Web 服务的异步调用以重新加载视图网格中的数据。视图模型完成后,如何在视图中通知 UIViewController,以便视图控制器可以在 UI 上调用 ReloadData?该命令不显示新视图,只是设置视图绑定的属性。

我能想到的选项之一是不要从视图模型对 Web 服务进行异步调用,并在我从命令自定义绑定模块的 command.execute() 返回后调用 reloaddata?这是正确的方法吗?也许使用信使?

谢谢马克

4

1 回答 1

1

您可以使用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);
于 2014-08-22T20:00:28.103 回答