2011-06-07 12 views
0

私はDevExpressコントロールがいっぱいのウィンドウを持っています。顕著なコントロールは、TabbedGroup(タブはピボットテーブルコントロールまたはグリッドコントロールのいずれかを含むタブ)を含むDockLayoutManagerです。このコントロールの周囲には、他のドッキング可能なウィンドウと、ウィンドウの上部にあるアイテムメニューがあります。DevExpress BarManager SaveLayoutToStream

BarManagerオブジェクトのSaveLayoutToStreamを呼び出して、アイテムメニューバーのレイアウトを保存したいとします。

この機能は、顕著なコントロールのレイアウトが元のレイアウトと同じ(つまり、デザイン時)の場合にのみ、正常に終了します。私は個人タブをドラッグして、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

あなたのレイアウトで同じタイプのオブジェクトを使用している場合たとえば、すべてのオブジェクトに対してDXSerializer.SerializationIDプロパティを割り当てる

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

を参照してください

<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" >