using InvestTracker.Entities; using Microsoft.EntityFrameworkCore; using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace InvestTracker.VM { public class EmployeeBrowseVM : BindableBase { public DelegateCommand UndoCommand { get; set; } public DelegateCommand SaveCommand { get; set; } public DelegateCommand NewCommand { get; set; } public DelegateCommand EditCommand { get; set; } public DelegateCommand DeleteCommand { get; set; } public DelegateCommand FindCommand { get; set; } private InvestContext _dbContext; private bool isDirty = false; /// /// Список всех сотрудников /// public ObservableCollection Employees { get; set; } /// /// Список всех должностей для выбора в колонках /// public ObservableCollection AllTitles { get; set; } public EmployeeBrowseVM() { UndoCommand = new DelegateCommand(Undo_Executed, WhenDirty); SaveCommand = new DelegateCommand(Save_Executed, WhenDirty); NewCommand = new DelegateCommand(New_Executed, WhenClean); EditCommand = new DelegateCommand(Edit_Executed, WhenClean); DeleteCommand = new DelegateCommand(Delete_Executed, WhenClean); FindCommand = new DelegateCommand(Find_Executed, WhenClean); _dbContext = new InvestContext(); Employees = new ObservableCollection<Employee>(_dbContext.Employees.ToList()); AllTitles = new ObservableCollection<Title>(_dbContext.Titles.ToList()); } private void Undo_Executed() { MessageBox.Show("Undoing"); isDirty = true; } private void Save_Executed() { MessageBox.Show("Saving"); isDirty = false; } private void New_Executed() { MessageBox.Show("Adding..."); isDirty = true; } private void Edit_Executed() { MessageBox.Show("Editing..."); isDirty = true; } private void Delete_Executed() { MessageBox.Show("Deleting..."); isDirty = true; } private void Find_Executed() { MessageBox.Show("Searching..."); } /// <summary> /// CanExecute когда isDirty = false /// </summary> private bool WhenClean() { if (isDirty == false) { return true; } else { return false; } } /// <summary> /// CanExecute когда isDirty = true /// </summary> private bool WhenDirty() { if (isDirty == true) { return true; } else { return false; } } } }