gpt4 book ai didi

mvvm - 如何使用容器来解析与模型关联的 View 模型集合?

转载 作者:行者123 更新时间:2023-12-03 10:45:29 25 4
gpt4 key购买 nike

大图目标:我想在一个充满编辑给定模型的属性页的数据窗口中编辑模型。我想用他们满足的多个接口(interface)来标记模型。对于每个界面,存在关联的属性页 View 模型和 View 。

我正在努力解决的是如何从满足 1-N 接口(interface)的给定模型中解析属性页面 View 模型的集合。

我想知道是否可以在容器中放置一个属性页面 View 模型工厂?我会尝试从容器中解析属性页面 View 模型的集合,并且容器将使用工厂来正确生成所需的 View 模型。我可以将该 View 模型集合交给一个数据窗口,该窗口将使用 ViewModelToViewConverter 生成 View 模型的 View 。

可以用容器注册工厂吗?这是实现这一目标的最佳方式吗?我想我可以让数据窗口的 View 模型句柄将模型转换为 View 模型的集合,但这感觉超出了范围。

最佳答案

我认为您可以创建要在主视图模型中编辑的模型列表(ObservableCollection)。然后创建一个带有自定义 View 的 ItemsControl 作为数据模板:

<ItemsControl ItemsSource="{Binding MyModels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<myViews:ModelEditorView />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

然后你就有了这个为你的 ModelEditorView 自动创建的 View 模型:
public class ModelEditorViewModel : ViewModelBase
{
public ModelEditorViewModel(MyModel model /*, other dependency injections here*/)
{
Argument.IsNotNull(() => model);

Model = model;
}

public MyModel Model { get; private set; }
}

然后一切都会自动为您创建。

关于mvvm - 如何使用容器来解析与模型关联的 View 模型集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com