3 回答

TA贡献1818条经验 获得超7个赞
MainViewModel
PersonViewModel
CompanyViewModel
abstract
BaseViewModel
.
BaseViewModel
ICommand
INotifyPropertyChanged
BaseViewModel
MainViewModel
public BaseViewModel ViewModel { get; set; }
INotifyPropertyChanged
App.xaml
DataTemplate
<DataTemplate DataType="{x:Type ViewModels:MainViewModel}"> <Views:MainView /></DataTemplate><DataTemplate DataType="{x:Type ViewModels:PersonViewModel}"> <Views:PersonView /></DataTemplate><DataTemplate DataType="{x:Type ViewModels:CompanyViewModel}"> <Views:CompanyView /></DataTemplate>
BaseViewModel
DataTemplate
<ContentControl Content="{Binding ViewModel}" />
ViewModel
MainViewModel
ViewModel = new PersonViewModel();
Binding
ICommand
MainViewModel
RelayComand
public ICommand DisplayPersonView{ get { return new ActionCommand(action => ViewModel = new PersonViewModel(), canExecute => !IsViewModelOfType<Person>()); }}
<Button Command="{Binding DataContext.DisplayPersonView, RelativeSource= {RelativeSource AncestorType={x:Type MainView}}, Mode=OneWay}" />
- 3 回答
- 0 关注
- 862 浏览
添加回答
举报