Saya memiliki aplikasi WPF yang sangat sederhana di mana saya menggunakan data binding untuk memungkinkan pengeditan beberapa objek CLR kustom. Sekarang saya ingin memasukkan beberapa validasi input ketika pengguna mengklik simpan. Namun, semua buku WPF yang telah saya baca tidak benar-benar memberikan ruang apa pun untuk masalah ini. Saya melihat bahwa Anda dapat membuat ValidationRules kustom, tetapi saya bertanya-tanya apakah ini akan berlebihan untuk kebutuhan saya.
Jadi pertanyaan saya adalah ini: apakah ada contoh aplikasi atau artikel yang baik di suatu tempat yang menunjukkan praktik terbaik untuk memvalidasi input pengguna di WPF?
.net
wpf
data-binding
validation
Mark Heath
sumber
sumber
Dari dokumentasi Pola & Praktek MS :
Dokumentasi selanjutnya menjelaskan cara mengimplementasikan IDataErrorInfo dan INotifyDataErrorInfo.
sumber
personaly, saya menggunakan pengecualian untuk menangani validasi. itu membutuhkan langkah-langkah berikut:
triknya di sini, adalah mengikat hanya ke objek yang berasal dari DependencyObject. implementasi sederhana INotifyPropertyChanged tidak akan berfungsi - ada bug dalam kerangka kerja, yang mencegah Anda mengakses kumpulan kesalahan.
sumber
Cek juga artikel ini . Seharusnya Microsoft merilis Enterprise Library (v4.0) mereka dari pola dan praktik mereka di mana mereka mencakup subjek validasi tetapi entah mengapa mereka tidak menyertakan validasi untuk WPF, jadi posting blog yang saya arahkan kepada Anda, menjelaskan apa yang penulisnya lakukan untuk mengadaptasinya. Semoga ini membantu!
sumber
Anda mungkin tertarik dengan contoh aplikasi BookLibrary dari WPF Application Framework (WAF) . Ini menunjukkan bagaimana menggunakan validasi di WPF dan bagaimana mengontrol tombol Simpan ketika ada kesalahan validasi.
sumber
Jika kelas bisnis Anda secara langsung digunakan oleh UI Anda, lebih baik menggunakan IDataErrorInfo karena menempatkan logika lebih dekat dengan pemiliknya.
Jika kelas bisnis Anda adalah kelas rintisan yang dibuat dengan referensi ke layanan WCF / XmlWeb maka Anda tidak dapat / tidak boleh menggunakan IDataErrorInfo atau membuang Exception untuk digunakan dengan ExceptionValidationRule. Sebaliknya Anda dapat:
sumber