2010-11-15 1 views
4

Источник элемента моей сетки - это тип данных, который имеет только один идентификатор поля (первичный ключ). Я связал это поле с столбцом шаблона Datagrid, но во время выполнения, когда я передал дублирующее или нулевое значение этому идентификатору внутри столбца datagrid, исключение не было обнаружено, а datagridtextbox не обнаруживает никаких ошибок. Мой код приведен ниже;Я использую datagrid, источник данных которого является datatable. Можно ли обрабатывать и отображать данные внутри первичного ключа в datagrid?

<UserControl.Resources> 
    <Style x:Key="errorStyle" TargetType="{x:Type TextBox}"> 
     <Setter Property="Padding" Value="-2"/> 
     <Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="Background" Value="Red"/> 
       <Setter Property="ToolTip" 
       Value="{Binding RelativeSource={RelativeSource Self}, 
       Path=(Validation.Errors)[0].ErrorContent}"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

<DataGrid AutoGenerateColumns="False" Name="UserDataGrid" VerticalAlignment="Top" 
      Width="381" ItemsSource="{Binding DataTableProperty, Mode=TwoWay,    NotifyOnTargetUpdated=True, NotifyOnValidationError=True}" 
      IsSynchronizedWithCurrentItem="true" > 

     <DataGrid.Columns> 
      <DataGridTextColumn Header="UserName" EditingElementStyle= 
                 "{StaticResource errorStyle}"> 
       <DataGridTextColumn.Binding> 
        <Binding Path="ID" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" NotifyOnValidationError="True" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" > 
         <Binding.ValidationRules> 
          <ExceptionValidationRule ValidationStep="UpdatedValue"></ExceptionValidationRule> 
         </Binding.ValidationRules> 
        </Binding> 
       </DataGridTextColumn.Binding> 
      </DataGridTextColumn> 
     </DataGrid.Columns> 

    </DataGrid> 

Может кто-нибудь, пожалуйста, помогите мне, что я делаю неправильно?

ответ