Trong ứng dụng dựa trên MVVM của tôi, tôi cần phải xác thực các trường trong mục nhập dữ liệu từ. Nếu có thể, tôi muốn sử dụng ràng buộc xác nhận hợp lệ WPF tiêu chuẩn với ErrorTemplates.xác thực trường xác thực và không đồng bộ trong WPF
Tuy nhiên tôi muốn thực hiện các logic xác nhận để được hoàn toàn điều khiển/kích hoạt bởi các ViewModel (push to View, không kéo bởi View) vì những lý do sau đây:
- Nó phải làm việc không đồng bộ vì logic xác thực có thể mất một lúc để thực thi.
- tôi cần phải được xác định hơn và tốt grained khi xác nhận logic là để được thực thi (ví dụ chỉ sau khi người dùng nhấp "Apply" hoặc khi trạng thái nội bộ thay đổi theo một cách mà mục đột nhiên trở nên không hợp lệ)
Tôi biết Silverlight có INotifyDataErrorInfo
được giới thiệu chính xác cho mục đích này, nhưng WPF thì không. Làm thế nào tôi có thể vẫn có logic xác nhận của tôi được tạo ra một cách xác định và không đồng bộ?
Dường như nó chỉ là không thể, vì vậy tôi cần phải đi một con đường khác như đã mô tả ở đây: http://stackoverflow.com/questions/7293277/create-a-visualtree-off-of -a-control-template-in-code – bitbonk
Lưu ý rằng WPF 4.5 đã giới thiệu hỗ trợ tương tự như Silverlight cho INotifyDataErrorInfo, ở đây ví dụ: http://anthymecaillard.wordpress.com/2012/03/26/wpf-4-5-validation -asynchrone/ – GrahamMc