这个问题是我昨天在 SO 上发布的问题的后续问题。我已经按照安迪的建议使用INotifyDataErrorInfo
. 我在Class
昨天提到的模型类中使用了它。我在 C-SharpCorner.com 上找到了一篇文章,我也根据我的情况进行了调整。在将这些放置到位并对其进行测试后,我发现它确实捕获了范围限制。但是,它只用DataGrid
红色圈出了问题所在的单元格。它没有显示单元格旁边的错误消息,这是我老板想要的。我想知道老板想要的东西是否在 WPF 中是不可能的DataGrid
?还是我搞砸了?
HandleValidationResults
我在上面第二个链接的方法中设置了一个断点。它正确地将错误消息分配给_errors
集合。这是我修改的方法DataGridTextColumn
:
<DataGridTextColumn Header="Start" Binding="{Binding StartTime, StringFormat={}{0:0000}, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnNotifyDataErrors=True, UpdateSourceTrigger=PropertyChanged}">
<Validation.ErrorTemplate>
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder x:Name="dataGridTextColumn" />
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ErrorContent}" Foreground="Red" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ControlTemplate>
</Validation.ErrorTemplate>
</DataGridTextColumn>