Heim > Backend-Entwicklung > C++ > Wie kann ich Hauptansichtsmodellfunktionen von untergeordneten Ansichtsmodellen in einer WPF-Anwendung aufrufen?

Wie kann ich Hauptansichtsmodellfunktionen von untergeordneten Ansichtsmodellen in einer WPF-Anwendung aufrufen?

Barbara Streisand
Freigeben: 2024-12-29 18:26:10
Original
841 Leute haben es durchsucht

How Can I Invoke Main View Model Functions from Child View Models in a WPF Application?

Aufrufen von Hauptansichtsmodellfunktionen aus anderen Ansichtsmodellen

Problem:

In einer Anwendung Mit einer Baumansicht und mehreren Inhaltspräsentatoren möchten Sie eine Funktion innerhalb des Hauptfensteransichtsmodells (MainWindowViewModel) aus der Baumansicht aufrufen Modell (TreeViewViewModel). Dies ist erforderlich, um die Anzeige manuell zu aktualisieren, da das MainWindowViewModel diese Änderungen steuert.

Lösung:

Die Verwendung von Delegatenobjekten ist eine praktikable Lösung für diese Eltern-Kind-Kommunikation. Delegate-Methoden können in verschiedenen Kontexten eingesetzt werden, einschließlich Child-Parent-Ansichtsmodellen, Code-Behind-Beziehungen und reinen Dateninteraktionen. Weitere Informationen zu Delegaten finden Sie in der Microsoft-Dokumentation „Delegates“ (C#-Programmierhandbuch).

Delegat-Implementierung:

Im TreeViewViewModel können Sie einen Delegaten implementieren, um einen bereitzustellen Pfad zurück zum übergeordneten Ansichtsmodell. Definieren Sie eine Delegate-Methode, die aufgerufen werden soll, wenn das untergeordnete Ansichtsmodell bereit ist:

public delegate void ReadyForUpdate();
public ReadyForUpdate OnReadyForUpdate { get; set; }
Nach dem Login kopieren

Das Hauptansichtsmodell (MainWindowViewModel) würde dann die UpdateDisplay-Methode abonnieren, wenn der Handler angehängt wird:

public void TreeViewViewModel_OnreadyForUpdate()
{
    UpdateDisplay();
}
Nach dem Login kopieren

Datenbindungsansatz:

Alternativ können Sie einen einfacheren Ansatz in Betracht ziehen, der die direkte Datenbindung vom Kind aus beinhaltet Ansichten zum übergeordneten Ansichtsmodell. Binden Sie beispielsweise eine Schaltflächenbefehlseigenschaft:

<!-- In TreeViewView -->
<Button Content="Click Me" Command="{Binding DataContext.ParentCommand,
RelativeSource={RelativeSource AncestorType={x:Type MainWindow}}}" />
Nach dem Login kopieren

Dies setzt voraus, dass der DataContext des MainWindow auf eine Instanz des übergeordneten Ansichtsmodells festgelegt ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Hauptansichtsmodellfunktionen von untergeordneten Ansichtsmodellen in einer WPF-Anwendung aufrufen?. 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