1

我无法将某些数据网格列设为只读。

XML

<DataGrid x:Name="fieldsDataGrid" AutoGenerateColumns="true"></DataGrid>

C# 代码

List<Field> fields = TestingClass.generateTestFields() // Generates the list
fieldsDataGrid.ItemSource = fields; 

// I tried both ways
FieldsDataGrid.Columns[0].isReadOnly = true;
FieldsDataGrid.Columns["Tokens"].isReadOnly = true; // Tokens is the column name

我已经尝试过 FieldsDataGrid.Columns[0].isReadOnly = true;在这种情况下,我最终得到的索引超出了范围。好像当我调试它时列是空的?为什么我打电话的时候是空的fieldsDataGrid.ItemSource = fields

如果这是不正确的实现方式,请提出更好的选择!

感谢您的帮助!

编辑

我在 XML 中添加了AutoGeneratedColumns = "true"- 我仍然有同样的错误。

4

1 回答 1

4

如果您正在自动生成列,则使用AutoGeneratingColumn事件并在那里设置列的只读属性。如果您手动添加列,IsReadOnly则应在创建时直接通过列名访问属性。

于 2013-09-19T18:46:17.483 回答