2011-06-07 2 views
0

У меня есть окно, полное элементов управления DevExpress. Выдающимся элементом управления является DockLayoutManager, содержащий вкладку TabbedGroup (вкладки содержат один из элементов: управление сводной таблицей или управление сеткой). Внутри этого элемента управления находятся другие закрепляемые окна, а также меню элементов в верхней части окна.DevExpress BarManager SaveLayoutToStream

Я хотел бы сохранить макет панели меню элементов, вызвав 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 

ответ

0

Мы рассмотрели стек вызовы и даже не можем себе представить, что может привести к этому вопросу появится. Пожалуйста, разместите образец проекта, показывающий этот вопрос, на DevExpress support center. Мы будем исследовать причину возникновения проблемы и ее исправления.

0

См

http://www.devexpress.com/Support/Center/e/E2272.aspx и http://www.devexpress.com/Support/Center/p/Q325319.aspx

Если вы используете объекты одного и того же типа в макете, присвоить свойство DXSerializer.SerializationID для всех объектов

Например

<Window x:Class="WpfApplication.MainWindow" 
     xmlns:core="http://schemas.devexpress.com/winfx/2008/xaml/core" 
     xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking" 

...

<dxdo:DockLayoutManager Name="FilterGridDockLayoutManager" core:DXSerializer.SerializationID="dock1" >