Dalam atur cara pelbagai rupa yang terdiri daripada berbilang model paparan, ia selalunya perlu untuk melaksanakan fungsi tertentu dalam model paparan utama daripada model pandangan keturunan yang lain. Pertimbangkan senario di mana model paparan utama menguruskan paparan kandungan dalam penyampai kandungan dan timbul keperluan untuk mengemas kini paparan ini secara manual daripada model paparan kanak-kanak.
Untuk merapatkan jurang komunikasi ini , pertimbangkan untuk memasukkan objek perwakilan. Perwakilan ini pada asasnya mewujudkan laluan kembali ke model paparan induk, menyediakan cara untuk "menimbulkan acara" yang menunjukkan bahawa kaedah perlu dipanggil.
Untuk menggunakan yang khusus kaedah dalam model paparan induk, gunakan sintaks perwakilan berikut:
public delegate void ReadyForUpdate();
Dalam paparan anak model:
// Define a handler for the ReadyForUpdate delegate public void ParameterViewModel_OnParameterChange(string parameter) { // Here, we call the desired method UpdateDisplay(); }
Dalam model paparan induk:
// 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) }
Pendekatan alternatif, jika sesuai, adalah dengan mengikat terus daripada pandangan anak kepada model paparan induk, seperti yang digambarkan di bawah:
<!-- In TreeViewView --> <Button Content="Click Me" Command="{Binding DataContext.ParentCommand, RelativeSource={RelativeSource AncestorType={x:Type MainWindow}}}" />
Ini mengandaikan bahawa contoh model paparan induk ditetapkan sebagai Konteks Data Tetingkap Utama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Fungsi Model Paparan Utama daripada Model Paparan Kanak-kanak dalam WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!