2012-11-20 22 views
5

Nó thổi tâm trí của tôi rằng các tài liệu chính thức tại MSDN không nói bất cứ điều gì về những gì các loại đối tượng cơ bản của đếm được mà trả về bởi GetErrors của INotifyDataErrorInfo nên là: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo.geterrors(v=vs.95).aspxLoại IEnumerable nào nên INotifyDataErrorInfo.GetErrors trở về?

Tùy chọn là: System.String, System.Object , MyCustomObject, ISomeOtherShitThatDoesntHaveAnythingToDoWithValidationWhatsoever

Ai đó có thể giải thích cho tôi về việc một đối tượng tùy ý có thể được chấp nhận để thông báo về lỗi mà không đưa ra bất kỳ giả định nào về cấu trúc của nó?

Trả lời

4

Các docs for INotifyDataErrorInfo cung cấp thêm thông tin:

Các lỗi xác nhận được trả về bởi phương pháp GetErrors có thể của bất kỳ loại. Tuy nhiên, nếu bạn triển khai loại lỗi tùy chỉnh, hãy nhớ ghi đè phương thức ToString để trả về thông báo lỗi. Silverlight sử dụng chuỗi này trong báo cáo lỗi mặc định của nó.

Các đối tượng lỗi tùy chỉnh hữu ích khi bạn cung cấp báo cáo lỗi tùy chỉnh trong giao diện người dùng. Ví dụ: bạn có thể tạo mẫu cho Chú giải công cụ báo cáo liên kết với thuộc tính ErrorLevel để hiển thị cảnh báo trong các lỗi màu vàng và nghiêm trọng màu đỏ.

Có một liên kết trong phần ví dụ về GetErrors trở lại tài liệu:

Đối với một ví dụ về việc thực hiện phương pháp này, xem tổng quan INotifyDataErrorInfo lớp.

Tôi đồng ý đó là chưa rõ ràng hơn nó có thể được, nhưng các tài liệu hướng dẫn là có ...

+0

Cảm ơn, nó sẽ được tốt đẹp để thấy rằng một phần trên trang liên quan trực tiếp đến phương pháp GetErrors :) –

+0

@bonomo : Đồng ý, nhưng nó chỉ mất khoảng một phút để tìm thấy nó, không bao giờ sử dụng giao diện này trước đây :) –

+0

Tôi đã dành 20 phút cho không có gì thay vì làm việc trên một vấn đề thực sự, tôi đơn giản là không đủ thông minh và không có nhiều thời gian để giải quyết các câu đố MSDN :) –