Я использую DataGrid, источник данных которого является датируемым.Могут ли быть обработаны и отображены исключения первичных ключей, которые могут быть указаны в сетке данных? - PullRequest
4 голосов
/ 15 ноября 2010

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

 <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>

Кто-нибудь может мне помочь, что я делаю не так?

1 Ответ

0 голосов
/ 26 июня 2011

Возможно, вам нужно проверить это вручную.Проверьте WPF DataGrid Практические примеры: проверка с помощью связанных наборов данных .

...