2012-07-17 28 views
0

我有一個Datagrid我想提供一些數據驗證,但我需要避免通常在單元處於無效狀態時發生的鎖定機制。有沒有辦法綁定到模型上的IDataErrorInfo錯誤,而不使用網格鎖定ValidatesOnDataErrors?訪問IDataErrorInfo沒有ValidatesOnDataErrors

說得具體一點,我想顯示錯誤的工具提示和裝飾,而不鎖定網格。

謝謝!

回答

0

原來,這可以通過僅在DataGridTemplateColumn的CellTemplate上使用驗證來實現。

如:

<DataGridTemplateColumn Header="Destination Column"> 
        <DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
          <ComboBox IsEditable="True" 
             IsTextSearchCaseSensitive="{Binding ElementName=caseSensitiveSearch, Path=IsChecked}" 
             ItemsSource="{Binding AllSuggestedNames}" 
             TextSearch.TextPath="SuggestedName" 
             Text="{Binding ColumnMapping.DestinationColumnName, UpdateSourceTrigger=PropertyChanged}"/> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellEditingTemplate> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Style="{StaticResource TextBlockValidationStyle}" 
             Text="{Binding ColumnMapping.DestinationColumnName, 
               ValidatesOnDataErrors=True, 
               NotifyOnValidationError=True, 
               UpdateSourceTrigger=PropertyChanged}" 
             Validation.ErrorTemplate="{StaticResource validationTemplate}"/> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn>