/
EmilMarkov
/
Explorer
Обзор
Документация
Войти
/
EmilMarkov
/
Explorer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Core/Explorer.Shared.ViewModels/DirectoryTabItemViewModel.cs
93 строки
2 KB
Markov Emil
Initial commit
05 мар 2024, 20:44
05 мар 2024, 20:44
b780e8e
Код
Авторство
О чём код?
using System.Collections.ObjectModel; using System.Windows.Input; using Explorer.Shared.ViewModels.Commands; using Explorer.Shared.ViewModels.Core; using Explorer.Shared.ViewModels.FileEntities; using Explorer.Shared.ViewModels.FileEntities.Base; namespace Explorer.Shared.ViewModels { public class DirectoryTabItemViewModel : BaseViewModel { #region Public Properties public string FilePath { get; set; } public string Name { get; set; } public ObservableCollection<FileEntiryViewModel> DirectoriesAndFiles { get; set; } = new ObservableCollection<FileEntiryViewModel>(); public FileEntiryViewModel SelectedFileEntity { get; set; } #endregion #region Commands public ICommand OpenCommand { get; } public ICommand CloseCommand { get; } #endregion #region Events public event EventHandler Closed; #endregion #region Constructor public DirectoryTabItemViewModel() { Name = "Мой компьютер"; OpenCommand = new DelegateCommand(Open); CloseCommand = new DelegateCommand(OnClose); foreach (var logicalDrive in Directory.GetLogicalDrives()) { DirectoriesAndFiles.Add(new DirectoryViewModel(logicalDrive)); } } #endregion #region Protected Methods #endregion #region Commands Methods private void Open(object parameter) { if (parameter is DirectoryViewModel directoryViewModel) { FilePath = directoryViewModel.FullName; Name = directoryViewModel.Name; DirectoriesAndFiles.Clear(); var directoryInfo = new DirectoryInfo(FilePath); foreach (var directory in directoryInfo.GetDirectories()) { DirectoriesAndFiles.Add(new DirectoryViewModel(directory)); } foreach (var fileInfo in directoryInfo.GetFiles()) { DirectoriesAndFiles.Add(new FileViewModel(fileInfo)); } } } public void OnClose(object parameter) { Closed?.Invoke(this, EventArgs.Empty); } #endregion } }