2

嗨,我的 WPF 应用程序中有一个Telerik GridView。在那个网格中,我有三列,例如Number、MaxMin。现在我需要禁用最小最大单元格,当我将在数字列上为选定行提供一些值时。

我将MaxCellMinCell等两个变量声明为 GridViewCellBase。如果查询(下面提到获取 MaxCell 和 MinCell)将返回 null 值,我无法将IsEnabled设为False。它不接受任何价值。它给Null 引用 Exception。我怎么解决这个问题 ?可以请告诉我这个问题的解决方案吗?提前致谢。

       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;
             }


         }

MaxCell总是返回空值。所以我不能给IsEnabled属性。现在我的疑问是,为什么 MaxCell 值总是以空值或空值的形式出现?单元格具有类似"Max""Min"的列。然后它应该返回实际单元格,但为什么它总是返回空值?

4

1 回答 1

1

而不是使用您描述的方法。我会尝试修改特定列的单元格样式,并使用返回适当值的转换器创建 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}" />

如果您不喜欢这样,您可以随时使用触发器。

于 2012-04-18T13:47:06.430 回答