在 Silverlight(但可能同样适用于 wpf)中,我有一个数据网格,它具有验证并且可以进入无效状态。我通过以下方式检查:
if(grid.IsValid)
{
...
}
我有一个复选框在未选中时触发保存,我希望禁用此复选框,或者至少不取消选中网格是否处于无效状态。
就像是:
BeforeUncheckEvent
{
if(datagridisvalid)
allow;
else
disallow;
}
绑定到IsEnabled
基于网格IsValid
会更好。这不起作用:
IsEnabled="{Binding ElementName=grid, Path=IsValid, UpdateSourceTrigger=PropertyChanged}"
更新>>
我尝试将另一个复选框绑定到网格 IsValid 并且有效,即使另一个复选框几乎与不起作用的复选框相同。
部分代码>>
当我检查这个:
<CheckBox x:Name="chkAllowManual" Checked="chkAllowManual_Checked" Unchecked="chkAllowManual_Unchecked" Content="Allow Manual" VerticalAlignment="Center" Margin="3,0,7,0" IsEnabled="{Binding ElementName=grdPrices, Path=IsValid}">
</CheckBox>
网格得到它的 itemsource 集,编辑后有一些错误,然后它被正确禁用(不是原来的复选框,而是它旁边的那个):
<CheckBox x:Name="chkAllowManual1" Checked="chkAllowManual_Checked" Unchecked="chkAllowManual_Unchecked" Content="Allow Manual1" VerticalAlignment="Center" Margin="3,0,7,0" IsEnabled="{Binding ElementName=grdPrices, Path=IsValid}">
</CheckBox>
有任何想法吗?