2012-12-21 46 views
10

Dường như có lỗi trong WPF 4.0 DataGrids.WPF Datagrid Row Validation

Tôi đang triển khai IDataErrorInfo trên các đối tượng của mình và tôi có một ObservableCollection mà thuật ngữ dữ liệu liên kết. Tôi có ValidatesOnDataErrors=True được đặt trên các cột nhưng không có gì được đặt trên các hàng. Tôi có UpdateSourceTrigger="PropertyChanged"

Xác thực hoạt động hoàn hảo trên ô theo cấp ô. Tuy nhiên, khi bạn để ô không hợp lệ, hãy chuyển đến bất kỳ ô nào khác và sau đó quay trở lại ô không hợp lệ và nhập dữ liệu hợp lệ, ô trở nên hợp lệ nhưng hàng vẫn không hợp lệ khi nó hợp lệ.

+0

Tôi có cùng một vấn đề! – Reilly

+0

"Tuy nhiên, khi bạn để ô không hợp lệ, hãy chuyển đến bất kỳ ô nào khác và sau đó quay lại ô không hợp lệ và nhập dữ liệu hợp lệ, ô trở nên hợp lệ nhưng hàng vẫn không hợp lệ khi nó hợp lệ." Chính xác cùng một vấn đề. – SKINDER

+1

Mọi người, cùng một vấn đề wpf và chưa có mã nào được đăng. Đó sẽ là tiêu đề xấu cho một bộ phim anyway. : D Có ai trong số các bạn nghĩ để đăng một số mã hoặc xaml không? –

Trả lời

2

Trong xác nhận thuộc tính chung, nó sẽ được xác thực khi nguồn được cập nhật nhưng trong trường hợp của RowValidation, bạn cần chỉ định RowValidationRule để thực hiện RowValidation.

<DataGrid.RowValidationRules> 
     <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" /> 
</DataGrid.RowValidationRules> 

Bây giờ DataGrid sẽ xác nhận cho Rows bạn cũng có thể cung cấp RowValidationErrorTemplate để hiển thị các lỗi trong định dạng Custom.

0

Đã xảy ra sự cố tương tự. Việc sửa chữa cho tôi đã được thiết lập ValidatesOnTargetUpdated="True" trên quy tắc xác thực, có vẻ như bắt buộc xác thực khác mỗi lần kiểm soát được cập nhật.