每个Viewmodel实例化一个视图(同一类型的多个视图)
本文关键字:视图 类型 Viewmodel 实例化 每个 一个 | 更新日期: 2023-09-27 17:59:08
有没有办法为每个Viewmodel实例化一个视图?我目前使用将视图应用于其视图模型
<DataTemplate DataType="{x:Type vm:CustomerViewModel}">
<vw:CustomerView/>
</DataTemplate>
但由于我的任务是让视图记住它们所关注的TextBox的选择,我需要我的程序为每个Viewmodel创建一个视图,而不仅仅是更改DataContext。
我已经为此搜索了整整两周,我的问题只是我是否(以及如何)可以实例化同一类型的多个视图(而不是如何记住TextBox选择):)
我处理此问题的方法是将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
将正常工作。