我正在开发 Silverlight 业务应用程序。在这里,我在 Silverlight 子窗口中填充数据网格。现在我面临的问题是我的数据网格有四列,但我只将其中一列设为可编辑,其余三列应保持只读。
我怎样才能实现它。我可以使整个数据网格可编辑,但不能编辑一个特定的列。请注意,这些列当前是自动生成的。
提前感谢您的帮助。
我正在开发 Silverlight 业务应用程序。在这里,我在 Silverlight 子窗口中填充数据网格。现在我面临的问题是我的数据网格有四列,但我只将其中一列设为可编辑,其余三列应保持只读。
我怎样才能实现它。我可以使整个数据网格可编辑,但不能编辑一个特定的列。请注意,这些列当前是自动生成的。
提前感谢您的帮助。
如果您事先定义列的名称,这将容易得多,并且只需要 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>
在上面的示例中,名称列是可编辑的,但其他 2 列是只读的。请注意,我正在使用绑定,因此对于您背后的代码,您可能不需要更改任何内容,您只需替换绑定的属性即可。
编辑
foreach (DataGridColumn item in DataGrid.Columns)
{
//if(column name condition of column id)
item.IsReadOnly = true;
}
此循环应允许您将所有列设置为只读。我个人会在 DataGrid Loaded 事件中执行此事件,因为如果太早完成,您的列将不存在。
希望这可以帮助,
如果您不想更改 XAML,可以将Editable属性添加到对象的属性中。