【问题标题】:XamDataGrid Column position index: Field.Index or Field.ActualPosition.ColumnXamDataGrid 列位置索引:Field.Index 或 Field.ActualPosition.Column
【发布时间】:2011-12-11 17:43:17
【问题描述】:

假设网格已经绑定到一个数据行并且有多个列。

我发现我可以通过以下方式检索给定的列位置索引:

var fieldsLayout = grid.FieldLayouts[0];
var columnField = fieldsLayout.Fields.Single(f => f.Name == "Column Name");
int columnIndex = ... see below
  • columnField.Index - 如果用户没有更改初始列顺序
  • columnField.ActualPosition.Column - 如果用户更改了初始列顺序

问题是如何知道用户是否改变了初始列顺序?

【问题讨论】:

    标签: c# .net wpf infragistics xamdatagrid


    【解决方案1】:

    在调查时我发现在初始阶段,当列顺序尚未更改时,每列的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,
    

    【讨论】:

      【解决方案2】:

      存储初始列列表并将初始列列表与实际列表进行比较。如果有任何不同,在顺序上,列顺序被改变了。

      【讨论】:

      • +1 谢谢,好主意,顺便说一句,我已经找到了解决方案,稍后会发布
      猜你喜欢
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多