MainViewModel.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Awesomeness.Core;
  2. using CommunityToolkit.Mvvm.ComponentModel;
  3. using CommunityToolkit.Mvvm.Input;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Awesomeness.GUI.ViewModels;
  11. partial class MainViewModel : ObservableObject
  12. {
  13. private Person scratchPerson;
  14. private Person? selectedPerson;
  15. private CatalogOfPeople catalog;
  16. public ObservableCollection<string> AvailableNames { get; set; }
  17. public MainViewModel()
  18. {
  19. scratchPerson = new Person();
  20. catalog = new CatalogOfPeople();
  21. AvailableNames = new ObservableCollection<string>();
  22. AvailableNames.Add("Bullshit");
  23. AvailableNames.Add("Another Crap");
  24. }
  25. [ObservableProperty]
  26. [NotifyCanExecuteChangedFor(nameof(ResetNameCommand))]
  27. private string firstName = String.Empty;
  28. [RelayCommand(CanExecute = nameof(CanResetName))]
  29. private void ResetName()
  30. {
  31. FirstName = String.Empty;
  32. }
  33. private bool CanResetName()
  34. {
  35. return FirstName != String.Empty;
  36. }
  37. [RelayCommand]
  38. private void SetName()
  39. {
  40. scratchPerson.FirstName = FirstName;
  41. }
  42. [RelayCommand]
  43. private void GetName()
  44. {
  45. FirstName = scratchPerson.FirstName;
  46. }
  47. [RelayCommand]
  48. private void AddNameToCatalog()
  49. {
  50. AvailableNames.Add("Kastöga");
  51. }
  52. }