想象一下,你有一个Listener类,它将使用Connect方法连接app启动到某个服务器,然后它开始监听消息,并在每个收到的消息上引发事件OnRecievedMessage。根据这些消息,您需要更新视图模型,视图模型又会更新视图。为了不阻止UI,你必须在新线程上运行Listen()方法,因此事件OnRecievedMessage也将在这个新线程上运行。
如何将这样的类合并到WPF / MVVM应用程序的结构中以及如何将其与viewmodel连接?
答案 0 :(得分:1)
在这种情况下我不会使用某个事件 - 我会公开IObservable<T>
因为IObservable将是一个对象,并且可以很容易地传递给/从您获得的函数返回:
所以不要传递你的“监听器”类 - 传递你实现/暴露在那里的IObservable!
请务必查看Rx-Framework