2012-06-13 57 views
0

我正在開發Silverlight業務應用程序。在這裏我正在Silverlight子窗口中填充一個數據網格。現在我面臨的問題是我的數據網格有四列,但我只編輯其中一列,因爲可編輯和其餘三個應該保持只讀狀態。如何在Silverlight數據網格中編輯一個特定列

我該如何實現它。我可以使整個數據網格可編輯,但不是一個特定的列。請注意,這些列目前是自動生成的。

在此先感謝您的幫助。

回答

0

如果定義前手列的名稱,這將是很容易,只需要XAML代碼

<data:Datagrid x:Name="Grid11" AutoGenerateColumns="False" ColumnWidth="*" SelectionMode="Single" > 
      <data:DataGrid.Columns> 
       <data:DataGridTextColumn Header="Index" IsReadOnly="True" Binding="{Binding LocalIndex}" /> 
       <data:DataGridTextColumn Header="ID" IsReadOnly="True" Binding="{Binding Id}" /> 
       <data:DataGridTextColumn Header="Name" Binding="{Binding Name, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True, Mode=TwoWay}" > 
      </data:DataGrid.Columns> 
</data:SolacomDatagrid> 

在上面的例子中name列是可編輯的,但其他2是隻讀的。注意我正在使用綁定,所以對於你後面的代碼,可能不需要改變任何你只需要替換被綁定的屬性的東西。

編輯

   foreach (DataGridColumn item in DataGrid.Columns) 
       { 
         //if(column name condition of column id) 
        item.IsReadOnly = true; 
       } 

這個循環應該允許您設置的所有列設置爲只讀。我個人會在DataGrid Loaded事件中執行此事件,因爲如果這樣做太早,您的列將不存在。

希望這有助於

+0

@Staindart有什麼辦法可以與autogeneratecolumns = true一起工作,因爲現在的問題。 – NeelDotNet

+0

@NendDotNet看到我上面的編輯。 – Stainedart

0

如果你不想改變你的XAML你可以在Editable屬性添加到您的對象的屬性。

相關問題