private void TvFolders_OnContextMenuOpening(object sender, ContextMenuEventArgs e) { var tv = (TreeView)sender; MiProjectsInFolder.Items.Clear(); var folder = tv.SelectedItem as FolderItem; if (folder?.Projects == null || folder.Projects.Count == 0) { return; } foreach (var project in folder.Projects) { var menuItem = new MenuItem { Header = project.Name }; menuItem.Click += (o, args) => { LvProjects.Tag = 1; LvProjects.UnselectAll(); project.IsSelected = true; LvProjects.Tag = null; }; MiProjectsInFolder.Items.Add(menuItem); } }
private void TvFoldersOnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { var tv = (TreeView)sender; if (tv.Tag != null) { return; } var selectedFolder = tv.SelectedItem as FolderItem; if (selectedFolder == null) { return; } LvProjects.Tag = 1; LvProjects.UnselectAll(); if (selectedFolder.Projects == null) { return; } foreach (var project in selectedFolder.Projects) { project.IsSelected = true; } LvProjects.Tag = null; }