1

我创建了一个由两个模块(dll)组成的棱镜项目。这两个模块加载在一个 shell 中,并按照 MVVM 模式构建。

模块 1 接收应该(尽可能快地)传输到模块 2 的数据。例如,这些数据可以存储在 observablecollection 中。这意味着如果这个 observablecollection 被更新,它应该更新 module2 中的视图。这是很多数据,所以我不会为此使用 eventtaggregator。

我读了一些关于依赖注入的东西,但我不知道该怎么做。我发现了几个示例,其中按下提交按钮以在两个模块之间传输数据。我想我需要的是对 module2 中 observablecollection(module1) 的引用。共享服务是我发现的另一个关键词。

什么是解决这个问题的好方法?

一个 mvvm 模式的例子会很棒。我是棱镜新手,所以请善待。

4

1 回答 1

1

将事件用于此类任务并没有错。有一些接口是一种常见的做法:

interface IDataReciever<TData>
{
    event Action<TData> DataRecieved;
    //some other methods, such as, for example:
    //void Open();
    //void Close();
}

阻碍与串口的所有交互。然后,您可以将此接口传递给您的 viewmodel 构造函数,订阅事件并将数据添加到事件处理程序中的可观察集合(如果需要,将其转换为某个模型)。

于 2013-09-30T13:05:29.847 回答