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

时间:2016-07-28 14:06:38

标签: c# wpf mvvm data-binding wpf-controls

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

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

但是我的任务是让视图记住选择他们的焦点TextBox我需要我的程序为每个Viewmodel创建一个视图而不是只改变DataContext。

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

3 个答案:

答案 0 :(得分:1)

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

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

然后,当我从基本窗口的VM打开窗口时,我传入this,然后程序中的所有窗口都在同一个VM上运行(属于原始的MainWindow)< / p>

这就是你问的问题吗?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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