多视图 - SL4中的一个ViewModel MVVM Light

时间:2011-01-21 23:53:47

标签: c# silverlight-4.0 mvvm-light

问候 -

我正在编写一个最终需要两个UI实现的应用程序。第一个将是我们的大多数客户将使用的标准应用程序。第二个是我们最大的客户要求我们为他们设计的自定义实现。这不仅仅是交换样式或皮肤......在某些情况下,我们对一个版本使用Accordion(真正的RadPanelBar),但在另一个版本中使用TabControl。

因为我正在使用EventToCommand,所以ViewModel代码是相同的。我只是使用标签控件& amp;一个RadPanelBar,效果是一样的......只需将我的EventToCommand连接到正确的控件,一切都按预期工作。

据我所知,View to ViewModel关系通常为1:1。在我的场景中,我希望它是2:1,其中每个viewModel都有2个关联的视图。每个应用程序需要大约50个视图,这是100个视图总共50个ViewModel。

第一个问题 - 可以这样做吗? 第二个问题 - 我是否走在正确的轨道上? 第三个问题 - 对第一个问题给出“是”,实施如何运作?我是否需要在Locator中复制代码以将ViewModel1与View1A和View1B连接起来?

谢谢,

斯科特

1 个答案:

答案 0 :(得分:2)

我认为你的方法是正确的。

我认为如果我们需要为2个视图设置2个VM来做同样的事情,这真的很愚蠢。

1:1场景是指你有一个不同于两个同一事物表示形式的视图-vm。

怎么做?您不必在定位器中复制代码。只需将两个视图连接到DataContext属性中的同一ViewModel(已在Locator上)。