Nexmo

solved_viewmodel_23.10.

Oct 23rd, 2021
649
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  public MainWindowViewModel()
  2.         {
  3.             this.Abfrage = new DelegateCommand(
  4.                 (o) => string.IsNullOrWhiteSpace(PersData.Vorname),
  5.                 (o) =>
  6.                 {
  7.                     NeuerDatensatz = false;
  8.                     Personendatenliste.Clear();
  9.                     Datenabfrage();
  10.                 });
  11.             this.Speichern = new DelegateCommand(
  12.                 (o) =>
  13.                 {
  14.                     Datenspeichern();
  15.                 });
  16.             this.NeueAdresse = new DelegateCommand(
  17.                 (o) =>
  18.                 {
  19.                     NeuerDatensatz = true; LoadnewData();
  20.                 });
  21.  
  22.  
  23.             //Searchable = Personendatenliste;
  24.             Listable = new CollectionViewSource();
  25.             Listable.Source = this.Personendatenliste;
  26.             Listable.Filter += ApplyFilter;
  27.             Adresstypenliste.Add(new Adresstypen { Adresstyp = string.Empty, ID_Adresstyp = null });
  28.            
  29.             /* Diese 3 Methoden wurden von der Property PersData ausgelagert in den Konstruktor, da diese nur einmalig benötigt werden.
  30.              * auch wäre hierfür ein Enum möglich.
  31.              */
  32.  
  33.             Adresstypenabfrage();
  34.             Telefontypabfrage();
  35.             Mailtypabfrage();
  36.  
  37.         }
  38.  
  39.  
  40.   /// <summary>
  41.         /// Hier ist die größte Änderung geschehen.
  42.         /// der getter wird erweitert, sodass er nur noch einmalig ein Object erzeugt.
  43.         /// im setter wird die Property AddTyp vorgesetzt.
  44.         /// Aus der Adressliste wird der Erste oder ein Default wert gezogen.
  45.         /// mit der Lambda-expression wird angegeben, welcher Wert dies sein soll.
  46.         /// </summary>
  47.         private Adressdaten selectedAdressItem;
  48.         public Adressdaten SelectedAdressItem
  49.         {
  50.  
  51.             get
  52.             {
  53.                 if (selectedAdressItem is null)
  54.                 {
  55.                     selectedAdressItem = new();
  56.                 }
  57.                 return selectedAdressItem;
  58.             }
  59.             set
  60.             {
  61.  
  62.                 if (value != selectedAdressItem)
  63.                 {
  64.  
  65.                     selectedAdressItem = value;
  66.                     AddTyp = Adresstypenliste.FirstOrDefault(x => x.ID_Adresstyp == SelectedAdressItem.ID_AdressTyp);
  67.  
  68.                     //RaisePropertyChanged(nameof(AddTyp.Adresstyp));
  69.                     RaisePropertyChanged();
  70.  
  71.                     ChangeAdressData = true;
  72.                 }
  73.             }
  74.         }
  75.  
  76.  
  77.  private Adresstypen addtyp;
  78.         public Adresstypen AddTyp
  79.         {
  80.             get
  81.             {
  82.                 if (addtyp is null)
  83.                 {
  84.                     addtyp = new();
  85.                 }
  86.  
  87.                 return addtyp;
  88.             }
  89.             set
  90.             {
  91.                 if (value != addtyp)
  92.                 {
  93.  
  94.                     addtyp = value;
  95.                     SelectedAdressItem.AdressTyp = AddTyp.Adresstyp;
  96.                     RaisePropertyChanged();
  97.                     RaisePropertyChanged(nameof(Adresstypenliste));
  98.  
  99.  
  100.                 }
  101.             }
  102.         }
RAW Paste Data