Laden...

Wie kann ich mir bei Back/Forward Navigation merken, was Previous/Next war/ist?

Erstellt von Kruemel999 vor 3 Jahren Letzter Beitrag vor 3 Jahren 727 Views
K
Kruemel999 Themenstarter:in
3 Beiträge seit 2020
vor 3 Jahren
Wie kann ich mir bei Back/Forward Navigation merken, was Previous/Next war/ist?

Hallo,

ich will mir eine Art Dialog programmieren, bei der ich mit einem Next / Back Button durch navigiere. Wie in einer Install-Wizard.

View1
View2
View3

MainViewModel
ViewModel1
ViewModel2
ViewModel3

Die Buttons Next / Back bleiben immer bestehen, die Inhalte tausche ich mit einem Content Presenter aus.
Gibt es eine schlaue Lösung, wie ich mir jeweils merken kann was prev / next ViewModel ist?

        public ViewModelBase AcutalViewModel
        {
            get { return this.currentViewModel; }
            set { this.currentViewModel = value; RaisePropertyChanged(); }
        }

		public ViewModelBase PreviousViewModel
		{
			get { return this.previousViewModel; }
			set { this.previousViewModel = value; RaisePropertyChanged(); }
		}
		public ViewModelBase NextViewModel
		{
			get { return this.nextViewModel; }
			set { this.nextViewModel = value; RaisePropertyChanged(); }

Aktuell merk ich mir das mit diesen Feldern / Properties. Gibts einen schlaueren Ansatz? Wie stelle ich das jetzt an, dass mein Next / Back-Button abhängig von der aktuellen View / ViewModel aktiviert oder deaktiviert ist?
Beispielsweise soll, wenn die View1 angezeigt wird, der Backbutton disabled sein.


			switch (button.Name)
			{
				case "nextButton":
					this.PreviousViewModel = this.AcutalViewModel;
					this.AcutalViewModel = new Screen2ViewModel();
					break;
				case "backButton":
					this.NextViewModel = this.AcutalViewModel;
					this.AcutalViewModel = this.PreviousViewModel;
					break;
				case "cancelButton":
					break;
				default:
					break;
			}

Vielen Dank.

4.931 Beiträge seit 2008
vor 3 Jahren

Hallo und willkommen,

packe die ViewModels alle in eine Liste und ändere nur jeweils den Index (und anhand dessen kannst du auch die Buttons de-/aktivieren). Und dein CurrentViewModel (nicht Actual 😉 gibt dann immer das ViewModel mit diesem Index zurück.

K
Kruemel999 Themenstarter:in
3 Beiträge seit 2020
vor 3 Jahren

Vielen Dank.