Мы подключаем наши представления и видим модели «извне», что означает, что у нас где-то есть следующий тип кода:
var viewModel = new MyViewModel();
var view = Application.Current.FindResource("MyView") as UserControl;
view.DataContext = viewModel;
Это своего рода перефразировка.Мы делаем это так, чтобы dll, содержащая все представления, могла быть отключена во время выполнения.До тех пор, пока DLL определяет ресурс с именем «MyView», который указывает на пользовательский контроль, MyView все хорошо.
Моя задача - просто убедиться, что FindResource не страдает или не является значимым способом простого выполненияследующее:
var view = new MyView();
Это можно заменить на IoC.(Мы не позволяем пользователю выбирать, какая DLL-библиотека представления используется. Это определяется при запуске приложения.)
Одна вещь, которую я нашел с FindResource, заключается в том, что вам, возможно, придется использовать x:Shared="False"
или ещеWPF вернет вам существующий экземпляр, и вы должны убедиться, что он «инициализирован» обратно в исходное состояние.
Есть мысли?