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

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

有没有办法为每个 Viewmodel 实例化一个 View ?我目前将 View 应用于他们的 View 模型

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

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


我已经为此搜索了整整两周,我的问题是我是否(以及如何)实例化相同类型的多个 View (而不是如何记住 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)

这是你要问的吗?

关于c# - 每个 Viewmodel 实例化一个 View(同一类型的多个 View),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638851/

相关文章:

c# - 如何为 WPF TabControl 选项卡添加边距?

c# - 隐藏标题选项卡式导航页 Xamarin/FreshMvvm

c# - 何时以及如何在 Windows Phone wp8 中的 ViewModel 中调用异步方法

c# - 如何使用 XAML、WP 8.1 中的 DataTrigger 行为切换两个按钮的可见性?

c# - 在 C# 中使用 HttpWebRequest/Response 登录网站?

c# - 如果错误已经逐字段显示,如何不显示 ASP MVC ValidationSummary?

c# - Tesseract OCR Library - 学习字体

java - 运行 Splunk SDK 示例时出现错误 : "No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"

c# - 控制台应用程序中的 Application.Current "null"

c# - 在 WPF DataGrid 中合并单元格