Navigation anzeigen In der WPF -MVVM -Anwendung ermöglicht der Wechsel zwischen verschiedenen Benutzeroberflächen. In diesem Artikel wird eine einfache Möglichkeit untersucht, um Navigation zu erreichen, ohne sich auf Frameworks wie MVVM -Licht zu verlassen.
Setzen Sie das Ansichtsmodell
Erstellen Sie eine Basisansichtsmodellklasse, definieren Sie öffentliche Attribute und Schnittstellen. Jedes spezifische Ansichtsmodell (z. B.
,, INotifyPropertyChanged
) sollte die selbstbasierte Klasse erben. MainViewModel
PersonViewModel
Verbinden Sie die Ansicht mit dem Ansichtsmodell CompanyViewModel
In wird die mit dem Ansichtsmodell zugeordnete Datenvorlage deklariert. Dadurch wird die entsprechende Ansicht basierend auf dem angegebenen Ansichtsmodell dargestellt.
App.xaml
Verwenden Sie in der Hauptansicht
Attribute gebunden sind, um verschiedene Ansichten anzuzeigen. Ändern Sie das Ansichtsmodell, um die angezeigte Ansicht zu wechseln. Von der Sub -View -Navigation
ViewModel
Um aus der Sub -View zu navigieren, erstellen Sie einen Befehl im Hauptansichtsmodell und binden Sie es an die Schaltfläche in der Sub -View. Wenn dieser Befehl ausgeführt wird, ändert der Befehl das Attribut ContentControl
im Hauptansichtsmodell und löst so die Ansichtsschaltausschaltung aus.
Code Beispiel
BaseViewModel: ViewModel
app.xaml (DataTeMplates):
<code class="language-csharp">public class BaseViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; }</code>
Bitte beachten Sie, dass für dieses Beispiel die Implementierung der
<code class="language-csharp">public class MainViewModel : BaseViewModel { private BaseViewModel viewModel; public BaseViewModel ViewModel { get { return viewModel; } set { viewModel = value; OnPropertyChanged(nameof(ViewModel)); } } public ICommand DisplayPersonView { get; } public MainViewModel() { DisplayPersonView = new RelayCommand(() => ViewModel = new PersonViewModel()); } protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } public class RelayCommand : ICommand { private readonly Action execute; public event EventHandler CanExecuteChanged; public RelayCommand(Action execute) { this.execute = execute; } public bool CanExecute(object parameter) => true; public void Execute(object parameter) => execute(); }</code>
-Klasse erforderlich ist. Methoden und Klasse müssen gemäß Ihrer tatsächlichen Situation angepasst oder ersetzt werden. Präfix repräsentiert Ihren Ansichtsnamenraum. Stellen Sie sicher, dass Ihr Ansichts- und Ansichtsmodell korrekt definiert und zugeordnet ist.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine einfache View -Navigation in WPF MVVM ohne externe Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!