Saya sangat tidak setuju dengan konsep bahwa Model seharusnya tidak menerapkan INotifyPropertyChanged
. Antarmuka ini bukan khusus UI! Ini hanya menginformasikan perubahan. Memang, WPF banyak menggunakan ini untuk mengidentifikasi perubahan, tetapi itu tidak berarti itu adalah antarmuka UI. Saya akan membandingkannya dengan komentar berikut: " Ban adalah aksesori mobil ". Tentu saja, tetapi sepeda, bus, dll juga menggunakannya. Singkatnya, jangan menganggap antarmuka itu sebagai hal UI.
Karena itu, itu tidak berarti saya percaya bahwa Model harus memberikan pemberitahuan. Bahkan, sebagai aturan praktis, model tidak harus mengimplementasikan antarmuka ini, kecuali jika diperlukan.Dalam kebanyakan kasus di mana tidak ada data server didorong ke aplikasi klien, modelnya bisa basi. Tetapi jika mendengarkan data pasar keuangan, maka saya tidak melihat mengapa model tidak dapat mengimplementasikan antarmuka. Sebagai contoh, bagaimana jika saya memiliki logika non-UI seperti layanan yang ketika menerima tawaran atau harga Permintaan untuk nilai yang diberikan itu mengeluarkan peringatan (mis. Melalui email) atau memesan? Ini bisa menjadi solusi bersih yang mungkin.
Namun, ada berbagai cara untuk mencapai hal-hal, tetapi saya selalu berdebat demi kesederhanaan dan menghindari redundansi.
Apa yang lebih baik Mendefinisikan peristiwa pada koleksi atau perubahan properti pada model tampilan dan menyebarkannya ke model atau meminta tampilan memperbarui model secara intrinsik (melalui model tampilan)?
Intinya setiap kali Anda melihat seseorang mengklaim bahwa " Anda tidak dapat melakukan ini atau itu " itu adalah tanda mereka tidak tahu apa yang mereka bicarakan.
Itu benar-benar tergantung pada kasus Anda dan pada kenyataannya MVVM adalah kerangka kerja dengan banyak masalah dan saya belum melihat implementasi umum MVVM di seluruh papan.
Saya berharap saya memiliki lebih banyak waktu untuk menjelaskan banyak rasa MVVM dan beberapa solusi untuk masalah umum - kebanyakan disediakan oleh pengembang lain, tapi saya rasa saya harus melakukannya lain kali.