wpf - 如何使用 MVVM Light 拥有多个唯一的 ViewModel 实例?

标签 wpf mvvm mvvm-light

我对遵循 MVVM 模式还很陌生。我正在使用 MVVMLight。我想知道如何使用 MVVM Light 拥有 ViewModel 的多个唯一实例。例如,我有一个可以打开 n 个窗口的应用程序。每个都使用相同的 Viewmodel。我对 MVVM 很好奇,给他们自己的实例最好的做法是什么。

如果我遵循 MVVM Light 示例,ViewModeLocator 将只有一个静态实例,每个窗口最终都会使用该实例。

提前致谢。

最佳答案

简单的:

public EndingViewModel EndingViewModel
{
    get 
    { 
      return ServiceLocator.Current.GetInstance<EndingViewModel>(Guid.NewGuid().ToString()); 
    }
}

从 ServiceLocator 解析时,请确保对 GetInstance 的调用将唯一值传递给该方法。在上面的示例中,我传入了一个 guid。

我真的不会手动构建你的对象,因为这违背了在 MVVM Light 中拥有依赖注入(inject)容器的意义。

关于wpf - 如何使用 MVVM Light 拥有多个唯一的 ViewModel 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039126/

相关文章:

wpf - 如何使用 MVVM 在 WPF 中绑定(bind)图钉位置?

c# - 代码中的 MvvmLight 绑定(bind)?

c# - WPF C# - MainWindows.g.cs 中的 "Unable to find namespace"错误

wpf - 应用程序应该有 3 层

c# - 在 WPF 中使用 Unity 解析时,SynchronizationContext.Current 为空

c# - 我的模型应该是什么样子?

c# - 对于 WPF 窗口中介服务,使用简单注入(inject)器按键解析实例的替代方法是什么?

.net - Windows 10 桌面应用程序上的自定义标题栏颜色

c# - 用户控件的子依赖对象的绑定(bind)不起作用

c# - 如何使用 OnPropertyChanged() 对 setter 进行单元测试;在里面?