我想使用WCF Ria Services和MVVM设计模式创建Silverlight应用程序。
应用程序的主页面将包含一个“外壳”和大量(10s或100s)不同外观(形状/大小/属性)的对象相互链接(形成一种图形)。 / p>
这些项目需要是鼠标可拖动的,并且需要将当前位置/状态保存到后端数据库。
我觉得实现这一目标的最佳方法是为显示的每个项目设置一个小的ViewModel和View,将所有重要的属性放入ViewModel,然后以某种方式在主“shell”中显示所有这些视图。
但是,我不知道这究竟是如何实现的。我考虑过使用MVVM Light,但没有找到任何可以显示类似内容的例子。
有人能指出一些关于如何做到这一点的例子或想法吗?
答案 0 :(得分:3)
“当你拥有的只是一把锤子时,一切看起来像钉子”:)
MVVM并非旨在管理您描述的图形密集型情况。它是一种以灵活的方式拼接高级概念的粘合剂。使用MVVM,您将增加将影响性能的开销(例如,绑定在后台使用反射)。涉及的对象越多,影响就越大。
我可以建议的最佳起点是想象你需要从第三方控件(例如自定义控件/容器),如果一个实际上不存在,建立它就好像它是第三方自定义控件
在实践中,您会发现自定义控件很少基于MVVM,出于性能原因,不仅仅是因为“它们通常不需要它”。它们可能会为外部接口公开 MVVM兼容的属性,但不会为低级内部公开。
MVVM是一种相对高级的技术。不要觉得你必须在所有事情上实现它。
答案 1 :(得分:0)
跟随MVVM做下一步:
答案 2 :(得分:0)
看一下Telerik控件,特别是radTileView,这似乎有你想要的功能。它们还有一个持久性框架,可以让您将瓷砖的位置保存回数据库。