using System.Collections.ObjectModel; namespace CommanderApp.Services; public interface IPanelManager { event EventHandler StateChanged; bool IsLeftPanelActive { get; } FileSystemItem SelectedItem { get; } string ActivePanelPath { get; } string LeftPanelPath { get; } string RightPanelPath { get; } int LeftSelectedIndex { get; } int RightSelectedIndex { get; } void SwitchToLeftPanel(); void SwitchToRightPanel(); void MoveSelection(int direction); void SetSelection(int index, bool isLeftPanel); void UpdatePanelPaths(string leftPath, string rightPath); void ClearSelection(); // Для привязки данных ObservableCollection LeftItems { get; } ObservableCollection RightItems { get; } } public class PanelStateChangedEventArgs : EventArgs { public bool IsLeftPanelActive { get; set; } public int LeftSelectedIndex { get; set; } public int RightSelectedIndex { get; set; } public FileSystemItem SelectedItem { get; set; } }