/
EmilMarkov
/
Explorer
Обзор
Документация
Войти
/
EmilMarkov
/
Explorer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Core/Explorer.Shared.ViewModels/MainViewModel.cs
90 строк
2 KB
Markov Emil
Initial commit
05 мар 2024, 20:44
05 мар 2024, 20:44
b780e8e
Код
Авторство
О чём код?
using System.Collections.ObjectModel; using Explorer.Shared.ViewModels.Commands; using Explorer.Shared.ViewModels.Core; using Explorer.Shared.ViewModels.FileEntities; namespace Explorer.Shared.ViewModels { public class MainViewModel : BaseViewModel { #region Public Properties public ObservableCollection<DirectoryTabItemViewModel> DirectoryTabItems { get; set; } = new ObservableCollection<DirectoryTabItemViewModel>(); public DirectoryTabItemViewModel CurrentDirectoryTabItem { get; set; } #endregion #region Commands public DelegateCommand AddTabItemCommand { get; } #endregion #region Events #endregion #region Constructor public MainViewModel() { AddTabItemCommand = new DelegateCommand(OnAddTabItem); AddTabItemViewModel(); CurrentDirectoryTabItem = DirectoryTabItems.FirstOrDefault(); } #endregion #region Protected Methods #endregion #region Commands Methods private void OnAddTabItem(object obj) { AddTabItemViewModel(); } #endregion #region Private Methods private void AddTabItemViewModel() { var vm = new DirectoryTabItemViewModel(); vm.Closed += Vm_Closed; DirectoryTabItems.Add(vm); CurrentDirectoryTabItem = vm; } private void Vm_Closed(object? sender, EventArgs e) { if (sender is DirectoryTabItemViewModel directoryTabItemViewModel) { CloseTab(directoryTabItemViewModel); } } private void CloseTab(DirectoryTabItemViewModel directoryTabItemViewModel) { directoryTabItemViewModel.Closed -= Vm_Closed; DirectoryTabItems.Remove(directoryTabItemViewModel); CurrentDirectoryTabItem = DirectoryTabItems.FirstOrDefault(); } #endregion } }