我正在尝试学习如何正确使用Autofac与wpf的接口和mvvm场景,并将我的mainWindow上的contentcontrol绑定到mainViewModel上的'CurrentView'属性,但我不知道是否应该使用具体的BaseViewModel类,或者我应该将CurrentView属性作为接口?我想在我的MainWindowViewModel构造函数中设置CurrentView属性。
简单定位器:
public class ViewModelLocator
{
public IContainer Container { get; set; }
public IMainWindowViewModel MainWindowViewModel
{
get
{
return Container.Resolve<IMainWindowViewModel>();
}
}
public IOtherPageViewModel OtherPageViewModel
{
get
{
return Container.Resolve<IOtherPageViewModel >();
}
}
}
坐在我的MainWindow.xaml
<ContentControl
Content="{Binding Path=CurrentView}"
Grid.Row="0"
VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch" >
</ContentControl>
MainWindowViewModel * 这是我的关注点,如果baseViewModel不是具体的,我应该在这里实现一个接口,或者当你需要显示不同的视图时,有什么正确的方法来设置currentView,多个viewModels?我问,因为我想让Autofac在MainWindowViewModel构造函数中注入我的currentview。这可能吗?
private baseViewModel currentView;
public baseViewModel CurrentView
{
get
{
return currentView;
}
set
{
currentView = value;
NotifyPropertyChanged(m => m.CurrentView);
}
}
在过去我使用过baseViewModels然后在视图上使用datatemplate但是我不知道这是否是一个合理的实现