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

Wie kann ich Hauptansichtsmodellfunktionen von untergeordneten Ansichtsmodellen in WPF aufrufen?

Mary-Kate Olsen
Freigeben: 2024-12-31 20:53:11
Original
866 Leute haben es durchsucht

How Can I Call Main View Model Functions from Child View Models in WPF?

Aufrufen von Funktionen im Hauptansichtsmodell aus anderen Ansichtsmodellen

Innerhalb eines vielschichtigen Programms, das aus mehreren Ansichtsmodellen besteht, kann es oft notwendig sein, bestimmte Funktionen innerhalb des Hauptansichtsmodells auszuführen Hauptansichtsmodell von anderen untergeordneten Ansichtsmodellen. Stellen Sie sich ein Szenario vor, in dem das Hauptansichtsmodell die Anzeige von Inhalten innerhalb von Inhaltspräsentatoren verwaltet und die Anforderung entsteht, diese Anzeige manuell von einem untergeordneten Ansichtsmodell aus zu aktualisieren.

Implementierung

Um diese Kommunikationslücke zu schließen Erwägen Sie die Einbindung von Delegatenobjekten. Diese Delegaten stellen im Wesentlichen einen Pfad zurück zum übergeordneten Ansichtsmodell her und bieten die Möglichkeit, „ein Ereignis auszulösen“, das angibt, dass eine Methode aufgerufen werden muss.

Einfacher Methodenaufruf

Zum Aufrufen einer bestimmten Methode Verwenden Sie für die Methode im übergeordneten Ansichtsmodell die folgende Delegatensyntax:

public delegate void ReadyForUpdate();
Nach dem Login kopieren

Innerhalb der untergeordneten Ansicht Modell:

// Define a handler for the ReadyForUpdate delegate
public void ParameterViewModel_OnParameterChange(string parameter)
{
    // Here, we call the desired method
    UpdateDisplay();
}
Nach dem Login kopieren

Im übergeordneten Ansichtsmodell:

// Attach the handler to the delegate
public ReadyForUpdate OnReadyForUpdate { get; set; }

// When the delegate's event is raised (e.g., by the child calling UpdateDisplay()),
// this method will be executed
public void ChildViewModel_OnReadyForUpdate()
{
    // Desired action occurs here (e.g., updating the display)
}
Nach dem Login kopieren

Direkte Bindung

Ein alternativer Ansatz, sofern geeignet, wäre die direkte Bindung aus den untergeordneten Ansichten zum übergeordneten Ansichtsmodell hinzufügen, wie unten dargestellt:

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

Dies setzt voraus, dass eine Instanz des übergeordneten Ansichtsmodells als DataContext des festgelegt ist Hauptfenster.

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