【发布时间】:2015-03-04 15:41:12
【问题描述】:
我正在针对具有回调的 TCP.NET WCF 服务使用 MVVM + Reactive Extensions。所以我创建了一个接收回调的 ClientProxy 类。我有一个有主题的 ClientProxy,我在模型中订阅它。现在我想做的是将收到的项目推送到 ViewModel 而无需引用 ViewModel。注意(我已经更改了实际的项目名称,所以如果我拼错了,那不是我的代码的样子)。
型号:
public Subject<CustomSale> CustomSaleAdded = new Subject<CustomSale>();
ClientProxy._onCustomSaleAdded.Subscribe(x =>
{
CustomSaleAdded.OnNext(x);
});
然后在我的ViewModel,我只是想Subscribe 到Model Subject CustomSaleAdded 并添加到我的ObservableCollection<Sale> Sales:
_scheduleModel.CustomSaleAdded.Subscribe(x =>
{
Sales.Add(x);
});
发生的事情是该项目从ClientProxy 到Model,我看到它触发CustomSaleAdded.OnNext(x)。但是在ViewModel,我设置了一个断点,什么也没发生。
那么有人可以告诉我在ViewModel 中推送一个项目到ObservableCollection 的最佳方法是什么,而ViewModel 不必引用@ 987654336@ 使用响应式扩展?
另外,这是响应式 UI 处理的吗?
我看到的大多数示例都显示 ViewModel 直接使用 Web 服务。我在模型中有两个附加层,然后是 ClientProxy,它们首先获取项目并推送它。
【问题讨论】:
标签: c# wpf wcf mvvm system.reactive