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

Instantiate one View per Viewmodel (multiple Views of the same type)

有没有办法为每个 Viewmodel 实例化一个视图?我目前使用

将视图应用于他们的视图模型
<DataTemplate DataType="{x:Type vm:CustomerViewModel}">
    <vw:CustomerView/>
</DataTemplate>

但由于我的任务是让视图记住其焦点文本框的选择,所以我需要我的程序为每个 Viewmodel 创建一个视图,而不是仅仅更改 DataContext。


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

您的视图模型应该包含选择的状态,它应该绑定在您的视图中。那么 DataTemplate 就可以正常工作了。

我处理这个问题的方法是让我的 ViewModel 成为后面代码中 xaml 的输入。例如:

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

然后,当我从 Base Window 的 VM 打开 window 时,我传入 this 然后我程序中的所有 windows 都在工作同一个VM(属于原来的MainWindow)

这是你要问的吗?

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