/// <summary> /// Обработка события "выбор" элемента TreeView /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Tree_Selected(object sender, RoutedEventArgs e) { TreeViewItem item = e.Source as TreeViewItem; //переданный объект инициализируем и объявляем как экземпляр TreeViewItem List <Worker> NewListOfWorkers = TreeService.CreateWorkersCollection(item, Organization); //c помощью статичного метода заменяем текущую коллекцию ListOfWorkers ListOfWorkers.Clear(); //сотрудниками выбранного в TreeView департамента/организации ListOfWorkers.AddRange(NewListOfWorkers); WorkersList.Items.Refresh(); //обновляем отображение работников в MainWindow }
/// <summary> /// Метод обработки события "Нераспределенные" /// </summary> private void Button_Click_ShowHomeless(object sender, RoutedEventArgs e) { ListOfWorkers.Clear(); //очищаем текущую отображаемую коллекцию сотрудников if (Organization != null && Organization.UnallocatedWorkersId.Count != 0 && Organization.UnallocatedWorkersId != null) { ListOfWorkers = TreeService.CreateUnallocatedWorkersCollection(Organization); //создаем коллекцию с помощью сервиса WorkersList.ItemsSource = ListOfWorkers; } WorkersList.Items.Refresh(); //обновляем }
/// <summary> /// Метод обновления коллекции сотрудников для отображения в WorkersList /// </summary> internal void RefreshWorkersList() { if (Tree.SelectedItem != null) { List <Worker> NewListOfWorkers = TreeService.CreateWorkersCollection(Tree.SelectedItem as TreeViewItem, Organization); //c помощью статичного метода заменяем текущую коллекцию ListOfWorkers сотрудниками выбранного в TreeView департамента/организации ListOfWorkers.Clear(); ListOfWorkers.AddRange(NewListOfWorkers); WorkersList.Items.Refresh(); //обновляем отображение работников в MainWindow } }
/// <summary> /// Обработка события "раскрытие" - добавления подчиненных департаментов в TreeViewItem /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Tree_Expanded(object sender, RoutedEventArgs e) { TreeViewItem item = e.Source as TreeViewItem; //раскрываемый элемент TreeView TreeService.CreateSubItems(item, Organization); //обращаемся к статичному методу для создания подчиненных элементов TreeViewItem }
/// <summary> /// Основной метод создания элементов TreeView и DataGrid /// </summary> /// <param name="Organization"></param> internal void CreateTreeView(Organization Organization) { Tree.Items.Clear(); Tree.Items.Add(TreeService.CreateTreeItem(Organization)); WorkersList.ItemsSource = ListOfWorkers; //указываем коллекцию источник для DataGrid }