Heim > Backend-Entwicklung > C++ > Wie können untergeordnete Ansichtsmodelle Funktionen in einem übergeordneten Ansichtsmodell aufrufen?

Wie können untergeordnete Ansichtsmodelle Funktionen in einem übergeordneten Ansichtsmodell aufrufen?

Patricia Arquette
Freigeben: 2024-12-26 18:36:12
Original
368 Leute haben es durchsucht

How Can Child View Models Call Functions in a Parent ViewModel?

Aufrufen von Funktionen im Hauptansichtsmodell von untergeordneten Ansichtsmodellen

In Szenarien mit mehreren Ansichtsmodellen mit einer hierarchischen Beziehung kann dies erforderlich sein Rufen Sie Funktionen im Hauptansichtsmodell aus untergeordneten Ansichtsmodellen auf. Dieser Artikel befasst sich genau mit dieser Anforderung und bietet eine Lösung, die Delegate-Objekte nutzt.

Betrachten Sie das beschriebene Szenario. Ein Hauptfensteransichtsmodell regelt den Inhalt, der in untergeordneten Ansichten angezeigt wird. Die Aufgabe besteht darin, die Anzeige manuell zu aktualisieren, indem eine Funktion im Hauptfenster-Ansichtsmodell von einem untergeordneten Ansichtsmodell aus aufgerufen wird.

Verwendung von Delegate-Objekten

Der verwendete Ansatz der Delegate-Methode in der Lösung und im Referenzartikel ermöglicht die Kommunikation in jedem Eltern-Kind-Szenario. Der Zugriff ist von untergeordneten Ansichtsmodellen zu übergeordneten Ansichtsmodellen, von Fenster-Code-Behinds zu untergeordneten Fenster-Code-Behinds und sogar zwischen Datenbeziehungen möglich.

Implementierung

  1. Delegierten im übergeordneten Ansichtsmodell definieren:

    public delegate void ReadyForUpdate();
    public ReadyForUpdate OnReadyForUpdate { get; set; }
    Nach dem Login kopieren
  2. Innerhalb der untergeordneten Ansicht Modell, fügen Sie dem Delegaten einen Handler hinzu:

    public void ReadyForUpdateHandler()
    {
        // Call the desired method in the parent view model
    }
    Nach dem Login kopieren
  3. Rufen Sie im übergeordneten Ansichtsmodell gegebenenfalls die Methode auf:

    public void ChildViewModel_OnReadyForUpdate()
    {
        // Call your method here
        UpdateDisplay();
    }
    Nach dem Login kopieren

Alternativer Ansatz

In manchen Fällen kann ein einfacherer Ansatz ausreichen. Die direkte Bindung von untergeordneten Ansichten an das übergeordnete Ansichtsmodell ermöglicht den direkten Zugriff auf ICommand-Eigenschaften im übergeordneten Ansichtsmodell:

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

Diese Methode geht davon aus, dass die Instanz des übergeordneten Ansichtsmodells als DataContext des Hauptfensters festgelegt ist.

Das obige ist der detaillierte Inhalt vonWie können untergeordnete Ansichtsmodelle Funktionen in einem übergeordneten Ansichtsmodell 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