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.
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.