【问题标题】:how to create multiple instance of model dynamically using servicelocator wpf如何使用servicelocator wpf动态创建模型的多个实例
【发布时间】:2020-01-08 09:25:33
【问题描述】:

我在 mainwindow.cs 中有一个 tabcontrol。我想动态添加新选项卡,每个选项卡都有自己独特的视图模型实例。我已经设法为一个标签做到了。但是当我创建第二个时,它具有相同的模型实例。我正在使用 viewmodelLocator。这是我在 ViewModelLocator 中的代码:

for (int i = 0; i <= 2; i++)
{
    locatorProvider.Register<IXmlParser>(() => new XmlParser(), key);
    locatorProvider.Register<IFileHandler>(() => new FileHandler(), key);
    locatorProvider.Register<ISetHandler>(() => new SetHandler(), key);
    locatorProvider.Register<RegisterViewModel>();
}

我尝试用这段代码检索它。

RegisterViewModel registerViewModel = SimpleIoc.Default.GetInstance(key);

【问题讨论】:

  • 你注册第二个 ViewModel 了吗?

标签: c# wpf xamarin mvvm-light viewmodellocator


【解决方案1】:

也许在将来使用同一视图模型的多个实例时它可能会对某人有所帮助。无论如何,这是答案。所以我像之前一样注册了接口,但是当我注册 viewModel 时,我将所有三个接口与相应的键一起传递给它。

// 辅助类

locatorProvider.Register(() => new XmlParser(), key); locatorProvider.Register(() => new FileHandler(), key); locatorProvider.Register(() => new SetHandler(), key);

//注册视图模型

locatorProvider.Register(() => new >>RegisterViewModel(locatorProvider.GetInstance(key), locatorProvider.GetInstance(key), locatorProvider.GetInstance(key)), key);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多