2013-05-01 28 views
0

我有几个项目。其中一个项目将作为Windows服务部署。另一个项目是WPF应用程序。还有一些其他应用程序管理某些数据(外部硬件或数据库)。数据列表几乎都是ObservableCollection's。在服务中使用ObservableCollection

我已经读了一下,看起来好像ObservableCollection只是真正的UI层(WPF应用程序,在我的情况下)。那是对的吗?我会更好地使用服务/数据管理器层中的事件(PropertyChanged)吗?

回答

1

在一个服务中,通常所有的对象都应该只处理当前请求所需的时间,对吗?因此,通常您在服务层中根本不需要更改通知,因为该服务会对模型本身执行所有更改。对于下一个请求,将从后备存储中再次读取所需的对象。

+0

那么,说2个用户界面可以使用相同的服务(通过网络连接到该计算机)。其中一个用户界面有一个打开的用户列表。其他用户界面通过用户界面导航以添加用户。他填写信息并按下“保存”。目前,它已被添加到数据库中,用户的ObservableCollection正在更新。这会导致其他用户界面也被更新。这就是我想要实现的。 – Joetjah 2013-05-01 08:12:56

+0

在这种情况下,即使没有请求,服务也需要能够将数据推送到客户端。通常情况下,我只是让客户端定期轮询用户列表的更新,除了在点对点情况下,客户端本身就是服务器。无论如何,由于服务和用户界面在不同的计算机上运行,​​并且事件需要活动对象引用,所以无论如何这都无法正常工作。 – hbarck 2013-05-01 08:21:43

+0

好吧,这听起来够公平!我还有一个问题。我在我的服务中使用'ObservableCollection',在类之间进行交互(不是UI)。它全部在同一个图层/设置中,但我仍然遇到有关线程的错误。更多信息可以在单独的问题中找到:http://stackoverflow.com/questions/16211346/threading-in-a-windows-service。但简而言之:我可以在我的服务中使用ObservableCollection来检查两个类之间,还是首选事件是RaiseProperty? – Joetjah 2013-05-01 08:28:25