0
LayoutControlGroup
があります。LayoutControlGroup
はほとんどありません。実行時に別のLayoutControlGroup内のLayoutControlGroupを並べ替える
実行する必要があるのは、実行時に特定の順序に並べ替えることです。例えばちょうど逆、
[Group0]
[Group1]
[Group2]
[Group3]
[Group4]
そして私は、DBから一部のデータを取得し、そのデータに応じてグループを並べ替える必要があります。フォームが現れたときに
例えばは、私はそのような順序でこれらのグループを持っていますオーダー:
[Group4]
[Group3]
[Group2]
[Group1]
[Group0]
私はすでに試したこと:毎回しかし
List<BaseLayoutItem> currentOrder = lcgParentGroup.Items.Cast<object>().Where(c => c is BaseLayoutItem).Cast<BaseLayoutItem>().Where(c => c.Name.StartsWith("lcgInnerGroup") && char.IsDigit(c.Name.Last())).ToList();
currentOrder.Sort((x, y) => System.Collections.Comparer.Default.Compare(x.Location.Y, y.Location.Y));
// Example order
List<BaseLayoutItem> requiredOrder = new List<BaseLayoutItem>(currentOrder);
requiredOrder.Reverse();
for (int i = 1; i < requiredOrder.Count; ++i)
{
// I just move every group after every relative group.
BaseLayoutItem relative = lcgParentGroup.Items.FindByName(requiredOrder[i - 1].Name);
DevExpress.XtraLayout.Customization.LayoutItemDragController dragController = new DevExpress.XtraLayout.Customization.LayoutItemDragController(requiredOrder[i], relative, MoveType.Outside, InsertLocation.After, LayoutType.Vertical);
bool result = requiredOrder[i].Move(dragController);
}
result
はfalse
です。
他の方法はありますか?