Я работаю с WPF.
У меня есть несколько моделей просмотра , реализующих интерфейс с именем IPageView
.
MainViewModel
также реализует IPageView
и как 2 свойства LiveView
и EditView
.
public MainViewModel : IPageView
{
public LiveViewModel LiveView{ get; set; }
public EditViewModel EditView{ get; set; }
}
Я регистрирую компоненты, реализующие IPageView
, например:
Classes.FromThisAssembly().BasedOn<IPageView>().WithServiceBase();
И я разрешаю все IPageView
экземпляры, подобные этому:
_container.ResolveAll<IPageView>();
Я бы ожидал, что CastleWindsor внедрит экземпляр свойства LiveViewModel
в LiveView
и экземпляр EditViewModel
в EditView
.
Этого не происходит. Свойства нулевые.
Мне не нравится идея создавать конкретные новые интерфейсы для каждого из моих viewmodel просто для правильной регистрации и разрешения компонентов.
На самом деле, я знаю, что у меня никогда не будет более одного и только одного viewmodel типа 'ILiveView' или 'IEditView', поэтому я хочу использовать бетон реализации .
Как настроить контейнер для разрешения моделей моего вида в MainViewModel
?
Спасибо.