using System.Windows; using System.ComponentModel; using System.Collections.Generic; using WpfApp1.SQL; using System; using System.Linq; using System.Windows.Input; using System.Windows.Controls; using WpfApp1.AddEdit; namespace WpfApp1 { /// /// Логика взаимодействия для MainWindow.xaml /// public partial class MainWindow : Window, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public List sortList { get => Items.sortList.ToList(); } private List _AgentList; public List AgentList { get { List agentList = _AgentList; if (SearchText != null) agentList = agentList.Where(item => item.Title.IndexOf(SearchText, StringComparison.OrdinalIgnoreCase) != -1).ToList(); if (SortList && ChooseSortItem == 0) return agentList.OrderBy(items => items.Title).ToList(); else if (SortList && ChooseSortItem == 1) return agentList.OrderBy(items => items.Title).ToList(); else if (SortList && ChooseSortItem == 2) return agentList.OrderBy(items => items.Priority).ToList(); else if (!SortList && ChooseSortItem == 0) return agentList.OrderBy(items => items.Title).ToList(); else if (!SortList && ChooseSortItem == 1) return agentList.OrderBy(items => items.Title).ToList(); else return agentList.OrderByDescending(items => items.Priority).ToList(); } set { _AgentList = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); PropertyChanged(this, new PropertyChangedEventArgs("SortList")); } } } private string _SearchText; public string SearchText { get => _SearchText; set { _SearchText = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); PropertyChanged(this, new PropertyChangedEventArgs("SearchText")); } } } private byte _ChooseSortItem; public byte ChooseSortItem { get => _ChooseSortItem; set { _ChooseSortItem = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("ChooseSortItem")); PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); } } } private bool _SortList = false; public bool SortList { get => _SortList; set { _SortList = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("SortList")); PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); PropertyChanged(this, new PropertyChangedEventArgs("GetContentButtonSort")); } } } public string GetContentButtonSort { get => SortList ? "По возрастанию" : "По убыванию"; } public MainWindow() { InitializeComponent(); AgentList = Base.EM.Agent.ToList(); DataContext = this; } private void TextBox_Name_KeyUp(object sender, KeyEventArgs e) { SearchText = TextBox_Name.Text; } private void Button_Sort_Click(object sender, RoutedEventArgs e) { if (SortList) SortList = false; else SortList = true; } private void ComboBox_Sort_SelectionChanged(object sender, SelectionChangedEventArgs e) { ChooseSortItem = (byte)ComboBox_Sort.SelectedIndex; } private void DataView_MouseDoubleClick(object sender, MouseButtonEventArgs e) { Agent item = ListView_Agent.SelectedItem as Agent; AddEditItems aei = new AddEditItems(item); if (aei.ShowDialog() == true) { AgentList = Base.EM.Agent.ToList(); PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); } } private void Button_Add_Click(object sender, RoutedEventArgs e) { Agent item = new Agent(); AddEditItems aei = new AddEditItems(item); if (aei.ShowDialog() == true) { AgentList = Base.EM.Agent.ToList(); PropertyChanged(this, new PropertyChangedEventArgs("AgentList")); } } private void Button_Exit_Click(object sender, RoutedEventArgs e) => Application.Current.Shutdown(); } }