2010-11-07 59 views
3

我有我的第一个MVVM Light应用程序,我一直很好,并没有在代码背后。出于性能原因,我使用的图表控件需要调用来关闭它的更新,然后在图表系列更新后再次打开它。所以我需要在ViewModel的控件上调用一个方法。MVVM Light - 发送通知到代码

现在我可以通过“更大的锤子”方法,通过定位器的MainStatic方法将对图表控件的引用交给ViewModel,从而实现所有这一切。我发现自己以为这不是这样做的方式,我试图用“MVVM方式”来做所有事情。任何MVVM Light大师都可以让我看看吗?我找到的所有东西都是人们从后面的代码发送命令到ViewModel ...我需要去另一种方式...或者至少我认为我做... ;-)

回答

2

“更新“开关应该已经通过可绑定属性暴露出来,而不是需要函数调用。然后,只需通过绑定到View Model的属性来打开和关闭它。因为这显然不是这种情况,也许你应该将图表控件包装在你自己的用户控件或子类中(稍微难一些)。然后你可以公开你想要的任何属性(包括“更新”属性,其设置者调用更新方法)。

对于基本的用户控件,我个人毫不犹豫地使用非MVVM方法(即代码隐藏),因为它们应该更像第三方控件而不是您的应用程序的一部分。现有的控件包装或子分类只会导致更好的可重用组件库。

+0

非常好的一点。谢谢! – John 2010-11-09 22:44:15