2015-08-05 6 views
0

Вопрос: Как я могу управлять тем, что мое правило проверки правильности данныхGrid проверяет мой ввод после изменения строки/ячейки, а не раньше.Подтвердить ввод через ValidationRule для Datagrid, привязанный к DataTable

C: У меня есть datatgrid с автоматически сгенерированных столбцов и правила проверки:

<DataGrid x:Name="dataGrid" 
         RowDetailsVisibilityMode="VisibleWhenSelected" 
         VerticalScrollBarVisibility="Auto" 
         HorizontalScrollBarVisibility="Auto" 
         EnableRowVirtualization="True" 
         AutoGenerateColumns="True" 
         ItemsSource="{Binding}" 
         SelectionMode="Extended"> 

         <DataGrid.RowValidationRules> 
         <test:TableValidationRules/> 
         </DataGrid.RowValidationRules> 
      </DataGrid> 

сетке данных является привязываться к DataTable после заполнения его данными из базы данных ....

 sqlAdapter.Fill(dataTable); 
     dataGrid.DataContext = dataTable.DefaultView; 

...

Когда я начинаю мой programmm все данные визуализируются как ожидалось, и при его создании запускается проверка данных. Но если я добавлю некоторые новые данные в свой DataGrid, например. в новой строке проверка выполняется на неизменных данных без учета данных, которые я написал в определенной ячейке.

Кажется, что я забыл некоторые детали и что решение находится недалеко. Это проблема привязки между dataTable и DataGrid? Или я должен запускать валидацию программно? Каков наилучший способ справиться с этим?

ответ

0

Решение использовать ValidationStep свойство:

   <DataGrid.RowValidationRules > 
        <test:TableValidationRules ValidationStep="CommittedValue"/> 
       </DataGrid.RowValidationRules>