ฉันมีแอปพลิเคชัน C# WPF MVVM ที่ทำงานได้ดี
ปัญหาเดียวคือเมื่อฉันแก้ไขกล่องข้อความและคลิกที่เมนู หากฉันทำอย่างนั้นโดยไม่คลิกที่ตัวควบคุมอื่น เหตุการณ์ view->viewmodel จะไม่เริ่มทำงานเนื่องจากกล่องข้อความไม่ได้สูญเสียโฟกัส แก้ไขให้ถูกต้องหากฉันผิด แต่ฉันคิดว่า RaisePropertyChanged จะทำงานบน LostFocus เท่านั้น (หรือ OnBlur หรือเหตุการณ์ที่คล้ายกัน)
ดังนั้นการคลิกที่ปุ่มบันทึกเมนูทันทีหลังจากแก้ไขกล่องข้อความจะทำให้โมเดลมุมมองบันทึกข้อมูลโดยใช้ค่าเก่า
ดังนั้นให้ดำเนินการต่อ:
ลำดับนี้ใช้ได้ดี:
- แก้ไขกล่องข้อความ
- คลิกที่การควบคุมอื่น
- RaisePropertyChanged ถูกเริ่มทำงาน โมเดลมุมมองได้รับการอัปเดต
- คลิกที่ปุ่มบันทึกบนเมนู
- ข้อมูลที่บันทึกด้วยค่าที่ถูกต้อง
ลำดับนี้ทำให้ฉันมีข้อผิดพลาด:
- แก้ไขกล่องข้อความ
- คลิกที่ปุ่มบันทึกบนเมนู
- ข้อมูลที่บันทึกด้วยค่าที่ถูกต้อง
วิธีแก้ปัญหานี้?