Dalam corak seni bina Model-View-ViewModel (MVVM), ViewModel mengendalikan data dan logik, manakala View memfokuskan pada pembentangan. Cabaran biasa timbul apabila tindakan ViewModel memerlukan menutup borang yang berkaitan. Memandangkan ViewModel tidak seharusnya berinteraksi secara langsung dengan View, bagaimanakah penutupan ini boleh dicapai sambil mematuhi prinsip MVVM?
Beberapa pendekatan wujud untuk menangani perkara ini:
Kaedah yang lebih canggih dan mematuhi MVVM menggunakan sifat yang dilampirkan. Contoh utama ialah pendekatan DialogCloser
(seperti yang dilihat dalam penyelesaian yang diterima sebelum ini):
<code class="language-xml"><Window ... xc:dialogcloser.dialogresult="{Binding DialogResult}" xmlns:xc="clr-namespace:ExCastle.Wpf"></Window></code>
Ini mengikat harta DialogResult
ViewModel kepada harta DialogCloser
yang dilampirkan. Mengubah suai DialogResult
dalam ViewModel secara automatik menutup Tetingkap dan mengemas kini harta DialogResult
nya. Ini menguruskan penutupan borang dengan elegan dalam rangka kerja MVVM.
Kaedah terbaik bergantung pada keperluan khusus aplikasi. Walau bagaimanapun, teknik hartanah yang dilampirkan menawarkan gabungan fleksibiliti yang menarik, pemisahan kebimbangan yang bersih dan pelaksanaan yang mudah.
Atas ialah kandungan terperinci Bagaimanakah ViewModel Boleh Menutup Borang Semasa Mengekalkan Prinsip MVVM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!