c# - XamDataGrid 列位置索引 : Field. 索引或 Field.ActualPosition.Column

标签 c# .net wpf infragistics xamdatagrid

让我们假设网格已经绑定(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.Column0== 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/

相关文章:

wpf - 在WPF中,如何确定控件在网格中的列/行?

c# - 如何动态填充图片框

c# - WPF自定义错误处理对话框?

c# - 函数内部存在动态调用会阻止静态上下文检查。为什么?

c# - Visual Studio 在生成期间部署报表项

.net - WPF:屏幕坐标和WPF坐标之间的转换

c# - 基于整数值动态调用函数

c# - 单元测试调用 session 对象的操作

c# - 如何使用汇编版本的预处理器条件?

c# - 在 Selenium WebDriver 中启动 Chrome Headless 仍然会导致浏览器窗口空白