DevExpress BarManager SaveLayoutToStream - PullRequest
0 голосов
/ 07 июня 2011

У меня есть окно, полное элементов управления 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

Ответы [ 2 ]

0 голосов
/ 10 января 2012

См.

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" >
0 голосов
/ 16 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...