Как разрешить модель-представление в PRISM

133
04 июля 2019, 21:40

Всем привет! Использую Prism c Unity ioc. Есть две модели-представления. Как можно обращаться к ним через Unity, внутри каждой модели-представления? Есть интерфейс IContainerExtension и метод Resolve. Но разрешить что то не получается. Может подскажите, как правильно это сделать.

Допустим я хочу изменить в модели-представление vm1 свойство a, из модели-представления vm2. В конструкторе vm2 пытаюсь резолвить vm1 так:

public vm2(IContainerExtension ce)
{
   var vm = ce.Resolve<vm1>();
   vm.a = "blablabla";
}

, однако во вьюхе к которой привязана vm1 значение не обновляется.

В принципе, я решил это через eventagregator, но в том же mef импорт моделей-представлений осуществлялся без проблем.

upd.

в общем я понадеялся конечно на встроенный провайдер. решил следующим образом. зарегистрировал отдельно ViewModel

    protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        containerRegistry.RegisterSingleton(typeof(vm1));            
    } 

и привязал ее отдельно в конфигураторе ViewModelLocationProvider

    protected override void ConfigureViewModelLocator()
    {
        base.ConfigureViewModelLocator();
       ViewModelLocationProvider.Register<v1>(()=> Container.Resolve<vm1>());
    }

в этом случае эта модель-представления прекрасно разрешается в другой модели-представлении. Не знаю только, гламурный ли это подход. Что подскажите, коллеги?

READ ALSO
C# List удалить элемент списка

C# List удалить элемент списка

Игра состоит из блоков List<Block>И пуль Bullet

164
Как получить данные из БД-MySql в ObservableCollection?

Как получить данные из БД-MySql в ObservableCollection?

Задача: получить данные из БД-MySql в ObservableCollection и затем передать в DataGrid

251
отчётность (ReportViewer)

отчётность (ReportViewer)

я создавал уже некоторую отчётность на одном листе(как в этом примере https://docsmicrosoft

130