/// <summary>SelectedItemChangedイベントハンドラ。</summary> /// <param name="e">イベントデータを格納しているRoutedPropertyChangedEventArgs<object>。</param> private void nodeChanged(RoutedPropertyChangedEventArgs <object> e) { var viewName = string.Empty; var current = e.NewValue as TreeViewItemViewModel; switch (current.SourceData) { case PersonalInformation p: viewName = "PersonalEditor"; break; case PhysicalInformation p: viewName = "PhysicalEditor"; break; case TestPointInformation t: viewName = "TestPointEditor"; break; case string s: viewName = "CategoryPanel"; break; } var param = new Prism.Regions.NavigationParameters(); param.Add("TargetData", current.SourceData); this.regionManager.RequestNavigate("EditorArea", viewName, param); }
/// <summary>SelectedItemChangedイベントハンドラ。</summary> /// <param name="e">イベントデータを格納しているRoutedPropertyChangedEventArgs<object>。</param> private void nodeChanged(RoutedPropertyChangedEventArgs <object> e) { if (this.skipNodeChange) { this.skipNodeChange = false; return; } var viewName = string.Empty; var current = e.NewValue as TreeViewItemViewModel; switch (current.SourceData) { case PersonalInformation p: viewName = "PersonalEditor"; break; case PhysicalInformation p: viewName = "PhysicalEditor"; break; case TestPointInformation t: viewName = "TestPointEditor"; break; case string s: viewName = "CategoryPanel"; break; } var param = new Prism.Regions.NavigationParameters(); param.Add("TargetData", current.SourceData); this.regionManager.RequestNavigate("EditorArea", viewName, r => { if ((r.Result.HasValue) && (!r.Result.Value)) { var oldNode = e.OldValue as TreeViewItemViewModel; this.skipNodeChange = true; oldNode.IsSelected.Value = true; } }, param); }