2012-04-09 34 views
2

您好我在我的WPF應用程序中有一個telerik GridView。在那個網格中,我有三列,如Number,Max最小。現在我需要禁用最小最大單元格當我將給所選行的數字列一些值。如何禁用Telerik GridView行中的特定單元格

我聲明瞭兩個變量,如MaxCellMinCell as GridViewCellBase。如果查詢(下面提到的獲取MaxCell和MinCell)將返回空值,我不能給IsEnabled作爲。它不接受任何價值。它的給出空引用異常。 我該如何解決這個問題?可以任何請告訴我這個問題的解決方案?提前致謝。

 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值始終爲空或空值?這些電池具有如「最大」和「最小」的列如。然後它應該返回實際單元格但爲什麼它總是返回空值?

+3

不知道如果我理解你的問題,但不能不檢查是否'MaxCell'爲空或沒有,然後訪問屬性,如果沒有找到,則'FirstOrDefault'返回null – V4Vendetta 2012-04-09 10:30:22

+0

它總是隻返回空值。如果我檢查MaxCell,它是否爲空它會從我的循環中出來。所以我不能給予啓用屬性。現在我的疑問是,爲什麼MaxCell值始終爲空或空值?這些單元格具有「最大」和「最小」等列。那麼爲什麼它總是返回空值? – SuryaKavitha 2012-04-09 12:02:42

+0

好吧,你已經在循環單元格,所以可能只有一個單元格可能滿足條件,而其他單元格會返回null,當你已經循環遍歷單元格時,爲什麼選擇? – V4Vendetta 2012-04-09 12:06:49

回答

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}" /> 

如果你不喜歡這一點,你可以隨時使用觸發器。

相關問題