private void CurrentProjectChanged(object sender, PropertyChangedEventArgs e) { this.CurrentProject.Value = GetNewValue(sender, e) as Project; IEnumerable <ProjectNodeViewModel> projectViewModels = this.ExplorerNodes.OfType <ProjectNodeViewModel>(); ProjectNodeViewModel projectNodeViewModel = projectViewModels.FirstOrDefault(entry => entry.Project == this.CurrentProject.Value); ChangeCurrentProject(projectNodeViewModel); }
private void SelectedItemChanged(object item) { if (typeof(ProjectNodeViewModel).IsAssignableFrom(item.GetType())) { ProjectNodeViewModel projectViewModel = item as ProjectNodeViewModel; this.Session.CurrentProject.Value = projectViewModel.Project; } else if (typeof(MapNodeViewModel).IsAssignableFrom(item.GetType())) { MapNodeViewModel mapViewModel = item as MapNodeViewModel; this.Session.CurrentMap.Value = mapViewModel.Map; } }
public void ChangeCurrentProject(ProjectNodeViewModel projectEntry) { if (projectEntry == null) { return; } if (projectEntry == this.selectedNode) { return; } this.selectedNode = projectEntry; this.Session.CurrentProject.Value = projectEntry.Project; }
private void LoadProjectsAndMaps(ObservableCollection <Project> projects, ObservableCollection <Map> maps) { this.ExplorerNodes.Clear(); foreach (Project project in projects) { ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, actionHandler, project); this.ExplorerNodes.Add(node); } foreach (Map map in maps) { MapNodeViewModel node = new MapNodeViewModel(this.eventAggregator, actionHandler, map); this.ExplorerNodes.Add(node); } }
private void CurrentProjectsChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: foreach (Project project in e.NewItems) { ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, actionHandler, project); this.ExplorerNodes.Add(node); } break; case NotifyCollectionChangedAction.Remove: IEnumerable <ProjectNodeViewModel> projectViewModels = this.ExplorerNodes.OfType <ProjectNodeViewModel>(); foreach (Project project in e.OldItems) { ProjectNodeViewModel toRemove = projectViewModels.FirstOrDefault(entry => entry.Project == project); this.ExplorerNodes.Remove(toRemove); } break; case NotifyCollectionChangedAction.Move: int oldIndex = e.OldStartingIndex; int newIndex = e.NewStartingIndex; if (oldIndex != -1 && newIndex != -1) { IProjectExplorerNodeViewModel entry = this.ExplorerNodes[oldIndex]; this.ExplorerNodes[oldIndex] = this.ExplorerNodes[newIndex]; this.ExplorerNodes[newIndex] = entry; } break; default: break; } }
public void AddProject(Project project) { ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, this.actionHandler, project); this.ExplorerNodes.Add(node); }