我想制作一个由多个 View 组成的布局,每个 View 都有自己的 View 模型。
我还想实现 ViewModel 优先的方法。所以我想在我的 View 中放置一些容器,它们的数据上下文绑定(bind)到容器 View 模型的相应 View 模型属性。然后容器的内容将根据为绑定(bind)的 View 模型类型编写的数据模板加载。
public class CompositVm
{
public FirstPartVm FirstPartVm { get; set; }
public SecondPartVm SecondPartVm { get; set; }
}
我想知道天气嵌套 View 模型是一种很好的做法,它是否与 MVVM 设计模式兼容?
最佳答案
是的。这没有错。这是采用 MVVM 方法的最佳实践。
假设您有一个绑定(bind)到 MainLayoutViewModel 的主布局 View MainLayout。 在 MainLayout View 中,您可能有 2 个 subview ,可能将主视图分成 2 行或 2 列,比如 ChildLayout1 绑定(bind)到 ChildLayout1ViewModel 和 ChildLayout2 绑定(bind)到 ChildLayout2ViewModel。
为此,您可以在MainLayoutViewModel 中创建 subview 模型的实例
ChildLayout1ViewModel ChildLayout1ViewModelInstance = new ChildLayout1ViewModel();
ChildLayout2ViewModel ChildLayout2ViewModelInstance = new ChildLayout2ViewModel();
您可以在 MainLayout.xaml 本身中设置 View 的 DataContext。当我们处理具有非常大的数据绑定(bind)的 View 时,这非常有用。很容易将它们分开并相应地处理事件和数据。
因此,遵循 MVVM 模型绝对是最好的做法。
关于wpf - 在容器 View 模型中嵌套 View 模型是否违反 MVVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833201/