Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Model Pandangan Kanak-kanak Boleh Memanggil Fungsi dalam PandanganModel Induk?

Bagaimanakah Model Pandangan Kanak-kanak Boleh Memanggil Fungsi dalam PandanganModel Induk?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 18:36:12313semak imbas

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

Fungsi Memanggil dalam Model Paparan Utama daripada Model Paparan Kanak-kanak

Dalam senario yang melibatkan berbilang model paparan dengan perhubungan hierarki, mungkin perlu untuk gunakan fungsi dalam model paparan utama dari dalam model paparan kanak-kanak. Artikel ini menangani keperluan ini dengan tepat, menyediakan penyelesaian yang memanfaatkan objek perwakilan.

Pertimbangkan senario yang diterangkan. Model paparan tetingkap utama mengawal kandungan yang dipaparkan dalam paparan kanak-kanak. Tugasnya adalah untuk mengemas kini paparan secara manual dengan memanggil fungsi dalam model paparan tetingkap utama daripada model paparan kanak-kanak.

Menggunakan Objek Perwakilan

Pendekatan kaedah perwakilan yang digunakan dalam penyelesaian dan artikel rujukan membolehkan komunikasi dalam mana-mana senario ibu bapa-anak. Akses boleh dilakukan daripada model paparan kanak-kanak kepada model paparan ibu bapa, daripada kod Tetingkap di belakang kepada kod Tetingkap kanak-kanak di belakang, malah antara perhubungan data.

Pelaksanaan

  1. Tentukan perwakilan dalam paparan induk model:

    public delegate void ReadyForUpdate();
    public ReadyForUpdate OnReadyForUpdate { get; set; }
  2. Dalam model paparan kanak-kanak, pasangkan pengendali kepada perwakilan:

    public void ReadyForUpdateHandler()
    {
        // Call the desired method in the parent view model
    }
  3. Dalam model paparan ibu bapa , panggil kaedah apabila sesuai:

    public void ChildViewModel_OnReadyForUpdate()
    {
        // Call your method here
        UpdateDisplay();
    }

Pendekatan Alternatif

Dalam sesetengah kes, pendekatan yang lebih mudah mungkin sudah memadai. Pengikatan Terus daripada paparan anak kepada model paparan induk membenarkan akses terus kepada sifat ICommand dalam model paparan induk:

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

Kaedah ini menganggap contoh model paparan induk ditetapkan sebagai Konteks Data tetingkap utama.

Atas ialah kandungan terperinci Bagaimanakah Model Pandangan Kanak-kanak Boleh Memanggil Fungsi dalam PandanganModel Induk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn