每个Viewmodel实例化一个视图(同一类型的多个视图)

本文关键字:视图 类型 Viewmodel 实例化 每个 一个 | 更新日期: 2023-09-27 17:59:08

有没有办法为每个Viewmodel实例化一个视图?我目前使用将视图应用于其视图模型

<DataTemplate DataType="{x:Type vm:CustomerViewModel}">
    <vw:CustomerView/>
</DataTemplate>

但由于我的任务是让视图记住它们所关注的TextBox的选择,我需要我的程序为每个Viewmodel创建一个视图,而不仅仅是更改DataContext。


我已经为此搜索了整整两周,我的问题只是我是否(以及如何)可以实例化同一类型的多个视图(而不是如何记住TextBox选择):)

每个Viewmodel实例化一个视图(同一类型的多个视图)

我处理此问题的方法是将ViewModel作为代码后面xaml的输入。例如:

public partial class AddMember : Window
{
    StructureGeneratorVM mainVM = null;
    public AddMember(object vm)
    {
        mainVM = (StructureGeneratorVM)vm;
        DataContext = mainVM;
        InitializeComponent();
    }
}

然后,当我从基本窗口的VM打开窗口时,我传入this,然后我程序中的所有窗口都在同一VM(属于原始MainWindow)上工作

这是你问的吗?

感谢您的建议,但我自己找到了解决方案。任何有类似问题的人;此链接将有助于:http://www.codeproject.com/Articles/460989/WPF-TabControl-Turning-Off-Tab-Virtualization

视图模型应该包含所选内容的状态,该状态应该绑定在视图中。然后DataTemplate将正常工作。