Во время исследования я обнаружил, что на начальном этапе, когда порядок столбцов еще не был изменен, 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,