/// <summary> /// コンストラクタ /// </summary> public MainViewModel() { //コンテンツの生成 ContentsTree = new Contents(); PathBar = new PathBarViewModel(this, SelectedItem); //ContentViewModel = new StartControlViewModel(); ContentViewModel = new CustomControlViewModel(); //イベントハンドラの接続 PropertyChanged += OnSelectedItemChanged; SelectedItem = ContentsTree.ContentsTree.First <Content>(); }
/// <summary> /// 選択中のアイテムが変更された時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void OnSelectedItemChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName != "SelectedItem") { return; } PathBar.OnSelectedItemChanged(sender, e); //ContentViewModel = null; //選択されたコンテンツに対応するVMを設定する //switch-case文ではcaseに定数値以外を設定できないため、if文で実装する if (SelectedItem.ContentName == "コンテンツ") { ContentViewModel = new StartControlViewModel(); } else if (SelectedItem.ContentName == Strings.ContentName_CustomControl) { ContentViewModel = new CustomControlViewModel(); } else if (SelectedItem.ContentName == Strings.ContentName_ProgressBar) { ContentViewModel = new ProgressBarViewModel(); } else if (SelectedItem.ContentName == Strings.ContentName_KeyboardNavigation) { ContentViewModel = new KeyboardNavigationViewModel(); } else if (SelectedItem.ContentName == Strings.ContentName_DragDropControl) { ContentViewModel = new DragDropControlViewModel(); } else { //未実装コンテンツ用のVMを設定 ContentViewModel = new NotImplementationViewModel(); } }