每个 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
有没有办法为每个 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