让我们假设网格已经绑定(bind)到一个数据行并且有多个列。
我发现我可以通过以下方式检索给定的列位置索引:
var fieldsLayout = grid.FieldLayouts[0];
var columnField = fieldsLayout.Fields.Single(f => f.Name == "Column Name");
int columnIndex = ... see below
columnField.Index
- 如果用户未更改初始列顺序columnField.ActualPosition.Column
- 如果用户更改了初始列顺序
问题是如何知道用户是否更改了初始列顺序?
最佳答案
在调查过程中,我发现在初始阶段,当列顺序尚未更改时,每列的 field.ActivePosition.Column
为 0
或 == field.Index
,
所以通过引入以下标志:
bool initialOrderChanged = fieldsLayout.Fields.Any(f =>
f.ActualPosition.Column != 0
&&
f.ActualPosition.Column != f.Index);
我可以通过以下方式获得正确的列位置顺序:
int position = initialOrderChanged
? field.ActualPosition.Column
: field.Index,
关于c# - XamDataGrid 列位置索引 : Field. 索引或 Field.ActualPosition.Column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7835488/