0

我正在开发 Silverlight 业务应用程序。在这里,我在 Silverlight 子窗口中填充数据网格。现在我面临的问题是我的数据网格有四列,但我只将其中一列设为可编辑,其余三列应保持只读。

我怎样才能实现它。我可以使整个数据网格可编辑,但不能编辑一个特定的列。请注意,这些列当前是自动生成的。

提前感谢您的帮助。

4

2 回答 2

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>

在上面的示例中,名称列是可编辑的,但其他 2 列是只读的。请注意,我正在使用绑定,因此对于您背后的代码,您可能不需要更改任何内容,您只需替换绑定的属性即可。

编辑

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

此循环应允许您将所有列设置为只读。我个人会在 DataGrid Loaded 事件中执行此事件,因为如果太早完成,您的列将不存在。

希望这可以帮助,

于 2012-06-13T19:23:51.670 回答
0

如果您不想更改 XAML,可以将Editable属性添加到对象的属性中。

于 2012-06-13T19:38:59.960 回答