2010-06-05 31 views

Trả lời

13

IDataErrorInfo.Error được sử dụng để báo cáo trạng thái xác thực cho toàn bộ đối tượng. Ví dụ nếu đối tượng của bạn có các thuộc tính StartTime và EndTime, có thể bạn sẽ muốn StartTime nhỏ hơn EndTime và nếu quy tắc xác nhận này bị hỏng thì sẽ không thích hợp để hiển thị thông báo cho cả một thuộc tính lẫn thuộc tính khác.

Thuộc tính lỗi cũng thích hợp để tóm tắt trạng thái xác thực tổng thể của đối tượng của bạn. Vì vậy, câu trả lời là không - bạn không nên kiểm tra mọi tài sản. Thông báo lỗi liên quan đến thuộc tính cụ thể được hiển thị bởi

string this[string columnName] 

lập chỉ mục.

EDIT: tại đây link giải thích cách giao diện được cho là được sử dụng.

+0

Những gì bạn nói có vẻ hợp lý, nhưng bạn có gì để sao lưu âm thanh không? Dường như việc sử dụng sự phản chiếu để có được tất cả các thuộc tính cần kiểm tra sẽ khá tốn kém. –

+0

Bạn có thể kiểm tra cách các điều khiển của Microsofts (như DataGrid) phản ứng với dữ liệu thực hiện giao diện. Bạn có thể quan sát các cuộc gọi mà nó thực hiện. Nếu bạn vẫn chưa thuyết phục, bạn có thể kiểm tra http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo%28VS.95%29.aspx liên kết đó và ví dụ cách nó được sử dụng. – Koynov

+3

liên kết MSDN trong câu trả lời cho biết "Lưu ý rằng công cụ ràng buộc không bao giờ sử dụng thuộc tính Lỗi, mặc dù bạn có thể sử dụng nó trong báo cáo lỗi tùy chỉnh để hiển thị lỗi cấp đối tượng". Tuy nhiên tôi nhận được một breakpoint hit bên trong "Lỗi" trong đó có BindingExpression.TransferValue trong callstack: - / –

Các vấn đề liên quan