У меня есть окно, полное элементов управления DevExpress. Выдающимся элементом управления является DockLayoutManager, содержащий TabbedGroup (вкладки содержат один из элементов управления: сводная таблица или элемент сетки). Этот элемент управления окружают другие закрепляемые окна, а также меню элементов в верхней части окна.
Я хотел бы сохранить макет строки меню элемента, вызвав SaveLayoutToStream для объекта BarManager.
Эта функция будет успешно выполнена, если и только если макет видного элемента управления идентичен исходному макету (т.е. во время разработки). Если я перетаскиваю вкладки отдельных лиц и закрепляю их в DockLayoutManager, я получаю следующее исключение:
Exception of type 'DevExpress.Xpf.Core.Serialization.DuplicateSerializationIDException' was thrown.
at DevExpress.Xpf.Core.Serialization.DuplicateSerializationIDException.Assert(IDXSerializable dxObj1, IDXSerializable dxObj2)
at DevExpress.Xpf.Core.Serialization.DXSerializer.SerailizationStore.<.ctor>b__4(IDXSerializable dxObj)
at DevExpress.Xpf.Core.Serialization.DXSerializer.AcceptCore(DependencyObject dObj, Action`1 visit, IEnumerable`1 parentIDs)
at DevExpress.Xpf.Core.Serialization.DXSerializer.Accept(DependencyObject dObj, AcceptNestedObjects acceptNested, Action`1 visit)
at DevExpress.Xpf.Core.Serialization.DXSerializer.SerailizationStore..ctor(DependencyObject root, AcceptNestedObjects acceptNested)
at DevExpress.Xpf.Core.Serialization.DXSerializer.SerializeCore(DependencyObject root, Object path, String appName, DXOptionsLayout options, AcceptNestedObjects acceptNested)
at DevExpress.Xpf.Bars.BarManager.SaveLayoutToStream(Stream stream)
at LayoutExtensions.GetLayout(BarManager view) in C:\LayoutHelper.cs:line 136