using KanSan.Base.Models; using KanSan.ViewModel.Commands; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Text; using System.Windows.Input; namespace KanSan.ViewModel { public class SewerMainWindowViewModel : BaseViewModel,INotifyPropertyChanged { private Sewer model; private SchaedenViewModel schadenViewModel; private Schaeden schaden; private BaseViewModel aktualView; public BaseViewModel AktualView { get { return aktualView; } set { if (aktualView == value) return; aktualView = value; OnPropertyChanged(); } } public Sewer Objekt { get => model; } public string ObjektBezeichnung { get { return string.Format("{0} ({1})",model.ObjektNummer,model.StrasseName); } } public Schaeden Schaden { set { if (schaden == value) return; schaden = value; schadenViewModel = new SchaedenViewModel(schaden); OnPropertyChanged("SchadenEntfernung"); } } public string SchadenEntfernung { get { Trace.WriteLine("Entfernung Schaden abgerufen"); if (schaden == null) return string.Empty; return string.Format(schadenViewModel.ToString()); } /*set { schadenEntfernung = value; Trace.WriteLine("Entfernung Schaden gesetzt"); OnPropertyChanged(); } */ } public ICommand StammdatenSelect { get; private set; } public ICommand SchädenübersichtSelect { get; private set; } public SewerMainWindowViewModel(Sewer model) { if (model == null) throw new ArgumentNullException(); this.model = model; StammdatenSelect = new RelayCommand(parameter => SelectStammdaten()); SchädenübersichtSelect = new RelayCommand(parameter => SelectSchädenübersicht()); var x = MainWindowViewModel.ServiceProvider.GetService(); x.ActualViewModel = new ObjekteEditViewModel(model); } private void SelectSchädenübersicht() { AktualView = new SchaedenListViewModel(model); } private void SelectStammdaten() { AktualView = new ObjekteEditViewModel(model); } } }