我正在使用INotifyPropertyChanged接口和TwoWay Databinding以我的SL2应用程序的一种形式实现Model-View-ViewModel(MVVM)模式。
但是我觉得由于这种方法,我的形式表现得有些缓慢。
我只是想知道使用这种方法是否在此类SL2应用程序中有任何性能损失。
...谢谢 萨迪普
答案 0 :(得分:3)
我没有注意到任何减速。我们正在对INotifyPropertyChanged ViewModels进行大量绑定,并且UI似乎反响灵敏。
当然,数据绑定与直接数据访问相比会受到打击......但是这种打击非常小,以至于您从数据绑定中获得的好处使得小打击变得无关紧要。
要记住的事情:数据绑定发生在UI中。在该层没有发生很多高强度处理。此外,UI呈现在单独的线程上。在我看来,这两件事共同构成了一种感觉非常敏感的体验。
Erik问你是否有任何价值转换器?我会问同样的事情。如果是这样,他们做了很多工作吗?根据我使用MVVM的经验,很少需要值转换器。只是一些值得思考的东西。
答案 1 :(得分:2)
我没有注意到任何减速。 Prism Reference Implementation和其他许多实现似乎很快。
实际上,绑定系统使用依赖属性。就像动画系统一样。部分原因是框架可以快速更新这些值。
您是否有适当的价值转换器?
答案 2 :(得分:1)
我们用Prism做了很多MVVM,并没有发现性能受到影响。恰恰相反 - 该应用程序通常比它的低技术Windows对应程序更快地进行演示。
答案 3 :(得分:0)
检查您需要双向绑定的位置,其他只需一次绑定。