0

我有我的 ViewModel,它有一个 ErrorCommand。我希望在我的视图代码中订阅它,以便在任何时候调用它时我都可以显示一条错误消息,如下所示:

ErrorCommand.Exectute("Error occured")

在视图中:

this.WhenAny(view => x.ViewModel.ErrorCommand, x => x.Value).Subscribe(error => DisplayError(error));

这段代码实际上不起作用,但希望能显示我想要实现的目标。我将如何正确地做到这一点?

我知道我可以使用 MessageBus,但我也有类似的情况,MessageBus 不合适。

4

2 回答 2

2

有一种专门针对这种情况的方法:

this.WhenAnyObservable(x => x.ViewModel.ErrorCommand).Subscribe(x => /* ... */);

会做你所期望的,并会避免空参考

于 2013-07-18T04:12:37.927 回答
0
this.WhenAny(view => x.ViewModel.ErrorCommand, x => x.Value).Subscribe(error => DisplayError(error));

仅当您更改 ErrorCommand 属性的值时才会触发。

你想要的是这样的:

ViewModel.ErrorCommand.IsExecuting.Subscribe(x=> DisplayError(x));
于 2013-07-17T13:50:10.563 回答