使用Databinding实现MVVM模式时,Silverlight应用程序是否有性能损失?

时间:2009-06-16 14:18:18

标签: silverlight performance data-binding mvvm

我正在使用INotifyPropertyChanged接口和TwoWay Databinding以我的SL2应用程序的一种形式实现Model-View-ViewModel(MVVM)模式。

但是我觉得由于这种方法,我的形式表现得有些缓慢。

我只是想知道使用这种方法是否在此类SL2应用程序中有任何性能损失。

...谢谢 萨迪普

4 个答案:

答案 0 :(得分:3)

我没有注意到任何减速。我们正在对INotifyPropertyChanged ViewModels进行大量绑定,并且UI似乎反响灵敏。

当然,数据绑定与直接数据访问相比会受到打击......但是这种打击非常小,以至于您从数据绑定中获得的好处使得小打击变得无关紧要。

要记住的事情:数据绑定发生在UI中。在该层没有发生很多高强度处理。此外,UI呈现在单独的线程上。在我看来,这两件事共同构成了一种感觉非常敏感的体验。

Erik问你是否有任何价值转换器?我会问同样的事情。如果是这样,他们做了很多工作吗?根据我使用MVVM的经验,很少需要值转换器。只是一些值得思考的东西。

答案 1 :(得分:2)

我没有注意到任何减速。 Prism Reference Implementation和其他许多实现似乎很快。

实际上,绑定系统使用依赖属性。就像动画系统一样。部分原因是框架可以快速更新这些值。

您是否有适当的价值转换器?

答案 2 :(得分:1)

我们用Prism做了很多MVVM,并没有发现性能受到影响。恰恰相反 - 该应用程序通常比它的低技术Windows对应程序更快地进行演示。

答案 3 :(得分:0)

检查您需要双向绑定的位置,其他只需一次绑定。