我在使用某些datagrid列只读它时遇到了麻烦。
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;
在这种情况下,我最终得到一个指数超出范围。好像我调试它时Columns是空的?当我拨打fieldsDataGrid.ItemSource = fields
如果这是实现此方法的错误方法,请提出更好的选择!
感谢您的帮助!
我添加了XML AutoGeneratedColumns = "true"
- 我仍然遇到同样的错误。
答案 0 :(得分:4)
如果您是autoGenerating列,则使用AutoGeneratingColumn
事件并在那里设置列的readonly属性。如果您手动添加列,则应在创建时通过列名直接访问IsReadOnly
属性。