2016-12-03 9 views
0

私は流動的なRibbonTabItemのための地域のアダプタを持っていて、それは一度にただ一つのRibbonGroupBoxを表示します。ビューからヘルプなしでSingleActiveRegionを作成できますか?

protected override IRegion CreateRegion() 
    { 
     return new SingleActiveRegion(); 
    } 

が、それは動作しません(私は新しいビューにリージョンを移動するたびに、すなわち、私は追加新しいビューを取得する)、私は私の意見はIRegionMemberLifetimeを実装しますしない限り、私はこれが仕事をすることが期待しましたKeepAliveからfalseを返します。

質問:私は迷っていますか?新しいビューを追加する前にそのViewsCollectionをクリアする領域を作成するにはどうすればよいですか?

答えて

0

悪いです。私はActiveViewsViewsではない)を私の地域で観察したはずです...今はうまくいきます。

public class RibbonTabItemRegionAdapter : RegionAdapterBase<RibbonTabItem> 
{ 
    public RibbonTabItemRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory) 
    { 
    } 

    protected override void Adapt(IRegion region, RibbonTabItem regionTarget) 
    { 
     region.ActiveViews.CollectionChanged += (s, e) => 
               { 
                switch (e.Action) 
                { 
                 case NotifyCollectionChangedAction.Add: 
                  foreach (var newItem in e.NewItems) 
                   regionTarget.Groups.Add((RibbonGroupBox)newItem); 
                  break; 
                 case NotifyCollectionChangedAction.Remove: 
                  foreach (var oldItem in e.OldItems) 
                   regionTarget.Groups.Remove((RibbonGroupBox)oldItem); 
                  break; 
                } 
               }; 
    } 

    protected override IRegion CreateRegion() 
    { 
     return new SingleActiveRegion(); 
    } 
} 

はここで完全なコードです

関連する問題