Heim > Backend-Entwicklung > C++ > So implementieren Sie eine einfache View -Navigation in WPF MVVM ohne externe Frameworks?

So implementieren Sie eine einfache View -Navigation in WPF MVVM ohne externe Frameworks?

Barbara Streisand
Freigeben: 2025-01-26 20:41:14
Original
629 Leute haben es durchsucht

How to Implement Simple View Navigation in WPF MVVM without External Frameworks?

Implementierung der einfachen View -Navigation in WPF MVVM (kein externes Gerüst)

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. Anzeige -Ansichtsmodelle in ContentControl

App.xaml Verwenden Sie in der Hauptansicht

, die an

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

MainViewModel:

app.xaml (DataTeMplates):

<code class="language-csharp">public class BaseViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
}</code>
Nach dem Login kopieren
Beispiel Verwendung:

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>
Nach dem Login kopieren
-Krinne und eine einfache

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage