我有一个数据网格,它绑定到我的viewmodel中的一个可观察集合。这一切都很好,并在数据网格中显示我的数据。
我现在需要做的是在用户输入文本时验证一些列。我正在使用IDataErrorInfo来执行此操作。
如果我执行以下操作: -
**<TextBox
Width="100"
Text="{Binding Path=CallCode,
Mode=TwoWay,
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged }"/>**
这在我的viewmodel中工作并触发验证代码,但是如果我将此代码添加到datagrid,如下所示它不会做任何事情!: -
<Border x:Name="body"
DockPanel.Dock="Top"
Grid.Row="2"
Grid.Column="0">
<!-- Results -->
<DataGrid x:Name="Results"
ItemsSource="{Binding CallCodesList}"
AutoGenerateColumns="False"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
CanUserAddRows="False">
<DataGrid.Columns >
**<DataGridTextColumn
Header="Call Code"
CanUserSort="True"
Width="100"
Binding="{Binding CallCode,
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged />**
<DataGridCheckBoxColumn Width="70"
Binding="{Binding Path=HasSpeech}"
Header="Speech"
IsThreeState="True">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Setter Property="IsChecked" Value="{Binding HasSpeech}" />
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
</DataGrid>
</Border>
是否有某些东西我缺失或者它看不到东西,因为它在数据网格中,这是全新的,所以目前卡住了:(
任何帮助都会很棒。
答案 0 :(得分:0)
它认为代码很好,我不知道wpftoolkit的数据网格是否允许IDataErrorInfo验证,但在本文(Validation in WPF Toolkit’s DataGrid)中,您可以看到在wpftoolkit的数据网格上使用验证的一个很好的例子,但使用IDataError接口方式。 我希望这对你有帮助......