简体   繁体   English

我究竟如何以编程方式只读取某些DataGrid列?

[英]How exactly would I make certain DataGrid columns readonly programatically?

I am having troubles making certain datagrid columns readonly. 我在查找某些datagrid列时遇到了麻烦。

XML XML

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

C# Code 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

What I have attmpted FieldsDataGrid.Columns[0].isReadOnly = true; 我所拥护的FieldsDataGrid.Columns[0].isReadOnly = true; In this case I ended up getting a index was out of range. 在这种情况下,我最终得到一个指数超出范围。 It seems like when I debugged it Columns was empty? 好像我调试它时Columns是空的? Why is it empty when I called fieldsDataGrid.ItemSource = fields 当我调用fieldsDataGrid.ItemSource = fields时为什么它是空的

If this is the incorrect way to implement this, please suggest a better option! 如果这是不正确的实现方式,请建议更好的选择!

Thank you for the help! 感谢您的帮助!

edit 编辑

I have added in the XML AutoGeneratedColumns = "true" - I am still having the same error. 我在XML中添加了AutoGeneratedColumns = "true" - 我仍然遇到同样的错误。

If you are autoGenerating columns, then use AutoGeneratingColumn event and set column's readonly property there. 如果您是autoGenerating列,则使用AutoGeneratingColumn事件并在那里设置列的readonly属性。 If you're adding columns manually, IsReadOnly property should be accessible directly through column name at the point of creation. 如果要手动添加列,则应在创建时通过列名直接访问IsReadOnly属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM