我有一个绑定数据的网格。当某个字段包含无效时间(00:00:00)时,验证失败,网格应显示红色边框。
这很好用,在验证单个字段时,验证工作正常。但是,在网格中,有时它不显示红色边框,即使值完全相同且验证失败:
如你所见,中间的行是红色边框,而其他人则不是。数据库中的2个值完全相同。
知道可能导致这种情况的原因吗?
注意:它与不同行上的不同颜色无关。这似乎发生在随机行中。
网格:
<DataGrid x:Name="DataGrid1" SelectionMode="Single" ItemsSource="{Binding Rides, NotifyOnValidationError=true}" Height="350" AutoGenerateColumns="False" IsReadOnly="True" CanUserSortColumns="True" SelectedItem="{Binding SelectedRide}" Margin="0,0,0.4,0" >
<DataGrid.RowValidationRules>
<DataErrorValidationRule ValidatesOnTargetUpdated="False" />
</DataGrid.RowValidationRules>
<DataGrid.Columns>
//columns
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
//button
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
答案 0 :(得分:0)
你为什么设置 ValidatesOnTargetUpdated = “假”?
这样,验证可能仅在初始化网格后由更改触发。 see MSDN for detailed explanation
如果我理解正确,您还希望验证初始错误,因此您应将此属性设置为True。