0

我在 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);

4

1 回答 1

0

也许在将来使用同一视图模型的多个实例时它可能会对某人有所帮助。无论如何,这是答案。因此,我像之前一样注册了接口,但是当我注册 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);

于 2020-01-24T08:38:21.887 回答