使用 MVVM-Light 将 UserControl 加载到窗口中的最佳做法是什么?在哪里创建 UserControl 实例,在 ViewModel from Window 中还是直接在窗口中?
问问题
2622 次
3 回答
3
如果您担心最佳实践,您的 VM 不应包含任何 UI 特定代码(如控件)。例如,如果您在 VM 中有一个属性控制视图中控件的可见性,则该属性的类型应为 bool 而不是 Visibility。视图将使用 bool 属性来隐藏或显示控件。
所以你有一个视图(像一个窗口),它与 VM 绑定数据。VM 中的某些属性更改将导致窗口中的某些代码创建并显示用户控件。
于 2010-06-11T12:21:44.320 回答
2
我刚刚阅读了这篇关于使用 MVVM (Light) 创建选项卡式界面的优秀文章。它没有谈论用户控件,但目标非常接近。很容易修改以支持用户控件。
该方法是将选项卡控件绑定到可观察的 Workspaces (ViewModels) 集合。添加新选项卡(或工作区)时,它会在 ViewModel 中实例化,添加到集合中,数据绑定到视图并在 DataTemplates 的帮助下呈现为新选项卡。
于 2010-06-16T10:21:17.950 回答
0
如果你能展示一个使用 mvvm light 的例子,我会很高兴。我还有一个问题,希望带有“子窗口”(用户控件)的主窗口在从主窗口单击按钮时显示/隐藏。所以我应该在同一个地方创建它们,比如说网格列,然后男性显示/隐藏通过属性绑定?
于 2010-06-13T11:52:54.167 回答