如何禁用 Telerik GridView 行中的特定单元格
本文关键字:单元格 何禁用 Telerik GridView | 更新日期: 2023-09-27 18:30:32
嗨,我的WPF应用程序中有一个telerik GridView。在该网格中,我有三列,例如数字,最大和最小。现在我需要禁用最小和最大单元格,当我在所选行的"数字"列上给出一些值时。
我将MaxCell和MinCell等两个变量声明为GridViewCellBase。如果查询(下面提到用于获取MaxCell和MinCell)将返回空值,则我无法将IsEnabled作为False。它不接受任何价值。它给出了空引用异常。 我该如何解决这个问题?可以告诉我这个问题的解决方案吗?提前谢谢。
foreach (GridViewCell cell in row.Cells)
{
if (cell.Column.Header.ToString() == "Number" && Convert.ToInt32 (cell.Value) > 0)
{
GridViewCellBase MaxCell = new GridViewCellBase();
GridViewCellBase MinCell=new GridViewCellBase();
MaxCell=(from c in row.Cells
where c.Column.Name == "Max"
select c).FirstOrDefault();
MinCell =(from c in row.Cells
where c.Column.Name == "Min"
select c).FirstOrDefault();
MaxCell.IsEnabled = false;// Here I am getting the null reference exception when MaxCell and MinCell having empty values
MinCell.IsEnabled = false;
break;
}
}
最大单元格始终只返回空值。所以我不能给 IsEnabled 属性。现在我的疑问是,为什么MaxCell值总是显示为空值或空值?单元格具有类似于"最大"和"最小"的列。然后它应该返回实际单元格,但为什么它总是返回空值?
而不是使用您描述的方法。我会尝试修改特定列的单元格样式,并使用返回适当值的转换器在 IsEnabled 属性上创建一个绑定。
<Style x:Key="MinMaxCellStyle" TargetType="{x:Type GridView:GridViewCell}">
<Setter Property="IsEnabled" Value="{Binding Normal, Converter{StaticResources NormalToEnabledConverter}" />
</Style>
然后将此样式作为休耕地应用于特定列:
<GridView:GridViewDataColumn CellStyle="{StaticResource MinMaxCellStyle}" />
如果您不喜欢这样,可以随时使用触发器。