![]() |
1
6
viewModel不应直接创建任何uielements,因为viewModel不应依赖于视图。视图模型提供视图(即uielements)可以绑定到的数据。 如果您的问题是针对如何引导视图,有两种方法:视图优先和视图模型优先。在前者中,首先创建视图,然后创建并绑定到视图模型。在后者中,您使视图模型(通过接口)创建视图。了解更多信息 here . 如果您的问题是为了组成uielements视图,那么这是通过数据绑定和使用数据模板和控件模板来完成的。 |
![]() |
2
2
MVVM是一种松散的设计模式,只要它只与UI有关,就可以将代码放在代码后面,请记住,单元测试可能比较困难。 严格地说,视图模型不与视图通信,在视图模型中没有对视图的引用,而是从视图模型中读取数据并在视图模型上执行命令。 |
![]() |
3
0
问题是,正如我所看到的,动态组件创建需要。 您可以将容器对象放在视图上,然后在ModelView上创建uielement s,并将此uielement集合绑定到容器的内容属性。但我认为这不是一个好的做法。这种方法打破了模型和视图的分离,因此需要避免动态组件的创建。 MVVM方法有点不同。有时强迫我们使用诡计。也就是说,不是使用列表框的memberPath属性,而是定义一个itemTemplate,并将buttonBase元素放在模板上以支持命令!或者扩展列表框并支持命令。 我的提议,而不是动态对象创建。使用datatemplates并更改modelview上的绑定成员,然后将自动为您创建视图。对于复杂的senario,这可能很困难。我们做这些都是为了保持MVVM结构。 |