WPF DataGrid - 如何将单元格和行验证与 DataGridTemplateColumn 一起使用
如何通过 DataGridTemplateColumn 使用单元格和行验证?
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DataType}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedItem="{Binding DataType}" ItemsSource="{Binding Source={x:Static app:ApplicationConfiguration.DataTypes}, ValidatesOnDataErrors=True}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
How do I use cell and row validation with DataGridTemplateColumn?
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DataType}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedItem="{Binding DataType}" ItemsSource="{Binding Source={x:Static app:ApplicationConfiguration.DataTypes}, ValidatesOnDataErrors=True}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这有点猜测,但看起来您想阻止选择某些项目。最简单的方法是将它们从列表中删除,但您可以使用验证来完成此操作,如下所示。
如果所选项目无效,请在 ViewModel 的 Setter 中抛出异常:
然后将 SelectedItem 的绑定设置为 ValidateOnExceptions(请注意,在您的问题中,您为 ItemsSource 指定了 ValidatesOnErrors em> 绑定 - 错误绑定上的错误属性):
It's a bit of a guess, but it looks like you want to prevent certain items from being selected. The easiest way would be to remove them from the list, but you could do it using validation as follows.
If the selected item is invalid, throw an exception in the Setter in the ViewModel:
Then set the binding for SelectedItem to ValidateOnExceptions (note that in your question, you specified ValidatesOnErrors for the ItemsSource binding - wrong property on the wrong binding):