禁用/启用DataGridTextColumn验证按钮

编程入门 行业动态 更新时间:2024-10-24 04:44:02
本文介绍了禁用/启用DataGridTextColumn验证按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有这样的的DataGrid :

<DataGrid ItemsSource="{Binding CustomerXml}" Name="customersDataGrid" AutoGenerateColumns="False" DataContext="{Binding}"> <DataGrid.Columns> <DataGridTextColumn Header="Name"> <DataGridTextColumn.Binding> <Binding Path="Name" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True"> <Binding.ValidationRules> <local:NameValidationRule/> </Binding.ValidationRules> </Binding> </DataGridTextColumn.Binding> </DataGridTextColumn> ... </DataGrid.Columns> </DataGrid>

和我试图禁用和有效性规则结果使保存按钮。

and I'm trying disabling and enabling save button by ValidationRule result.

<Button Content="Save" Name="save" Click="save_Click"> <Button.Style> <Style TargetType="{x:Type Button}"> <Setter Property="IsEnabled" Value="false" /> <Style.Triggers> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding ElementName=customersDataGrid, Path=(Validation.HasError)}" Value="false" /> </MultiDataTrigger.Conditions> <Setter Property="IsEnabled" Value="true" /> </MultiDataTrigger> </Style.Triggers> </Style> </Button.Style> </Button>

但是,如果为ValidationResult 设置为true或false,按钮仍然被禁用。

But if the ValidationResult is set to true or false, button is still disabled.

推荐答案

于是我找到解决方法:

int count = 0; private void customersDataGrid_Error(object sender, ValidationErrorEventArgs e) { if (e.Action == ValidationErrorEventAction.Added) { save.IsEnabled = false; count++; } if (e.Action == ValidationErrorEventAction.Removed) { count--; if (count == 0) save.IsEnabled = true; } }

更多推荐

禁用/启用DataGridTextColumn验证按钮

本文发布于:2023-11-03 12:48:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1555175.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:按钮   DataGridTextColumn

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!