0
我有兩個對於MainWindow的視圖模型。 我想在視圖模型之間切換。因此,我有一個主視圖模型,讓我給我的第一和第二個視圖模型之間切換:如何將datacontext設置爲不同的視圖模型
class MainViewModel : ViewModelBase
{
private ViewModelBase _currentViewModel;
public ViewModelBase CurrentViewModel
{
get
{
return _currentViewModel;
}
set
{
if (_currentViewModel == value)
return;
_currentViewModel = value;
OnPropertyChanged("CurrentViewModel");
}
}
public ICommand FirstViewCommand { get; private set; }
public ICommand SecondViewCommand { get; private set; }
private bool _canExecuteFirstViewCommand;
private bool _canExecuteSecondViewCommand;
public MainViewModel(Vokabel model)
{
VokabelViewModelDeutschLatein _vokabelViewModelDeutschLatein = new VokabelViewModelDeutschLatein(model);
VokabelViewModelLateinDeutsch _vokabelViewModelLateinDeutsch = new VokabelViewModelLateinDeutsch(model);
_canExecuteFirstViewCommand = true;
_canExecuteSecondViewCommand = true;
CurrentViewModel = _vokabelViewModelDeutschLatein;
FirstViewCommand = new CommandHandler(() => ExecuteFirstViewCommand(_vokabelViewModelDeutschLatein),_canExecuteFirstViewCommand);
SecondViewCommand = new CommandHandler(() => ExecuteSecondViewCommand(_vokabelViewModelLateinDeutsch), _canExecuteSecondViewCommand);
}
private void ExecuteFirstViewCommand(VokabelViewModelDeutschLatein _vokabelViewModelDeutschLatein)
{
CurrentViewModel = _vokabelViewModelDeutschLatein;
}
private void ExecuteSecondViewCommand(VokabelViewModelLateinDeutsch _vokabelViewModelLateinDeutsch)
{
CurrentViewModel = _vokabelViewModelLateinDeutsch;
}
}
在代碼的主窗口的背後 - 我如何設置的DataContext新視圖模型?
public MainWindow()
{
Vokabel _Vokabel;
MainViewModel _MainViewModel;
InitializeComponent();
_Vokabel = new Vokabel();
_MainViewModel = new MainViewModel(_Vokabel.Initialize());
this.DataContext = _MainViewModel;
}
在MainWindow.xaml我有一個按鈕,讓我切換到所述第二視圖模型:
<Button Grid.Column="1" Content="Deutsch => Latein" Command="{Binding SecondViewCommand}" />
如果我運行應用程序,所述第二(或第一)的視圖模型的DataContext不存在。