如何在viewmodel中使用第三方控件?

时间:2010-04-07 07:28:47

标签: wpf silverlight design-patterns mvvm

我有第三方控件,其中包括执行某些数据的加载。我希望我的viewmodel能够跟踪这个加载操作并相应地调整它自己的状态。

如果由我决定,我会将数据加载到远离视图的位置,但事实并非如此。所以,我似乎处于我的viewmodel依赖于我的观点的情况。我该如何最好地处理这个?我认为视图将事件发布到viewmodel是相当脏的,但是我没有看到任何其他合理的方法将这些信息发送到viewmodel。

类似的情况也可能出现在标准控件上 - 假设您的viewmodel依赖于来自MediaElement的事件 - 您如何正确地建模?您是否将MediaElement放入viewmodel?这听起来不对。

如果将事件发布到viewmodel确实是最合理的方式,是否有一些常用模式用于此?你是怎么做到的?

1 个答案:

答案 0 :(得分:0)

通常,您不允许ViewModel了解详细信息甚至视图控件的类型。让它响应事件是更清洁的方式。有许多库包含将控制事件映射到ViewModel上的ICommands的行为。

Caliburn就是这样一个图书馆。您可以将控件事件映射到ViewModel上的方法。