[英]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! 感谢您的帮助!
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.