Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Membuka Windows Baharu dalam Seni Bina MVVM WPF Tanpa Melanggar Prinsipnya?

Bagaimanakah Saya Boleh Membuka Windows Baharu dalam Seni Bina MVVM WPF Tanpa Melanggar Prinsipnya?

Mary-Kate Olsen
Lepaskan: 2024-12-29 16:03:12
asal
865 orang telah melayarinya

How Can I Open New Windows in WPF's MVVM Architecture Without Violating its Principles?

Membuka Windows Baharu dalam MVVM WPF: Pertimbangan Antara Muka

Semasa mencipta contoh tetingkap baharu dari dalam model paparan melanggar prinsip MVVM, ia adalah perkara biasa untuk melaksanakan antara muka untuk menghilangkan kerumitan membuka tingkap. Walau bagaimanapun, gandingan antara muka dengan jenis tetingkap tertentu, seperti ChildWindow, mengehadkan kefleksibelan.

Penyelesaian Antara Muka Generik

Untuk menangani isu ini, pertimbangkan antara muka yang lebih generik reka bentuk:

interface IWindowService
{
    void OpenWindow<TWindow>(object dataContext) where TWindow : Window, new();
}
Salin selepas log masuk

Antara muka ini membolehkan anda menentukan jenis tetingkap sebagai parameter generik, membolehkan perkhidmatan untuk mengendalikan sebarang jenis tetingkap yang anda lalui.

Pelaksanaan WindowService

Pelaksanaan WindowService kemudiannya boleh menjadi:

class WindowService : IWindowService
{
    public void OpenWindow<TWindow>(object dataContext) where TWindow : Window, new()
    {
        var window = new TWindow();
        window.DataContext = dataContext;
        window.Show();
    }
}
Salin selepas log masuk

Lihat Penggunaan Model

Dalam model paparan anda, anda boleh menggunakan perkhidmatan untuk membuka tetingkap baharu sebagai diperlukan:

public void OpenChildWindowCommandExecute()
{
    _windowService.OpenWindow<ChildWindow>(this);
}
Salin selepas log masuk

Kesimpulan

Pendekatan antara muka generik ini membolehkan anda mencipta dan membuka tetingkap baharu daripada model paparan tanpa melanggar prinsip MVVM. Ia memberikan fleksibiliti dengan mendayakan penggunaan mana-mana jenis tetingkap, memupuk penggunaan semula kod dan kebolehselenggaraan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuka Windows Baharu dalam Seni Bina MVVM WPF Tanpa Melanggar Prinsipnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan