Używał ktoś Prism-a do modułów?

0

Cześć
mam taką jedną małą rzecz do zrobienia

  • WPF, MVVM, PRISM, MODUŁY

o ile dość łatwo dowiedzieć się jak się ładuje moduły i to jest proste
to mam pytanie
jak w PRISM zrobić MENU, tak żeby każdy załadowany moduł miał swój ITEM

1

Witam,

Użyj RegionAdapter-a.

Pozdrawiam,
mr-owl

0
mr-owl napisał(a):

Witam,

Użyj RegionAdapter-a.

Pozdrawiam,
mr-owl

Bardzo dziękuję za poradę
teraz poziom trudności wzrasta

Prism, devexpress, WPF, Ribbon

O ile już ogarnalem jak to wszystko połaczyć - to z ribbonem nie działa

Main Window


            <dxr:RibbonControl Name="shellRibbonControl" DockPanel.Dock="Top" prism:RegionManager.RegionName="{x:Static core:RegionNames.RibbonPageRegion}">
                <dxr:RibbonDefaultPageCategory />
            </dxr:RibbonControl>

Moduł

regionManager.RegisterViewWithRegion(RegionNames.RibbonPageRegion, typeof(ModuleARibbonPage));

Adapter

public class RibbonControlRegionAdapter: RegionAdapterBase<RibbonControl>
    {
public RibbonControlRegionAdapter(RegionBehaviorFactory regionBehaviorFactory)
            : base(regionBehaviorFactory)       {        }

        protected override void Adapt(IRegion region, RibbonControl regionTarget)
        {
            region.Views.CollectionChanged += (s, e) =>
            {
                if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
                {
                   
                }
                else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
                {

                }
            };
        }

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

App.xaml.cs

 protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings)
        {
            base.ConfigureRegionAdapterMappings(regionAdapterMappings);
            regionAdapterMappings.RegisterMapping(typeof(RibbonControl), Container.Resolve<RibbonControlRegionAdapter>());
        }

Probowałem korzystać z przykladów są one np w prism 4 czy 6 z uzyciem MEF który jest w 7 deprecated
no i nie udaje mi się
Jakie powinno być podejście do ribbona?

z góry dziękuję za pomoc

0
jakubek napisał(a):
mr-owl napisał(a):

Witam,

Użyj RegionAdapter-a.

Pozdrawiam,
mr-owl

Bardzo dziękuję za poradę
teraz poziom trudności wzrasta

Prism, devexpress, WPF, Ribbon

O ile już ogarnalem jak to wszystko połaczyć - to z ribbonem nie działa

Main Window


            <dxr:RibbonControl Name="shellRibbonControl" DockPanel.Dock="Top" prism:RegionManager.RegionName="{x:Static core:RegionNames.RibbonPageRegion}">
                <dxr:RibbonDefaultPageCategory />
            </dxr:RibbonControl>

Moduł

regionManager.RegisterViewWithRegion(RegionNames.RibbonPageRegion, typeof(ModuleARibbonPage));

Adapter

public class RibbonControlRegionAdapter: RegionAdapterBase<RibbonControl>
    {
public RibbonControlRegionAdapter(RegionBehaviorFactory regionBehaviorFactory)
            : base(regionBehaviorFactory)       {        }

        protected override void Adapt(IRegion region, RibbonControl regionTarget)
        {
            region.Views.CollectionChanged += (s, e) =>
            {
                if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
                {
                   
                }
                else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
                {

                }
            };
        }

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

App.xaml.cs

 protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings)
        {
            base.ConfigureRegionAdapterMappings(regionAdapterMappings);
            regionAdapterMappings.RegisterMapping(typeof(RibbonControl), Container.Resolve<RibbonControlRegionAdapter>());
        }

Probowałem korzystać z przykladów są one np w prism 4 czy 6 z uzyciem MEF który jest w 7 deprecated
no i nie udaje mi się
Jakie powinno być podejście do ribbona?

z góry dziękuję za pomoc
Ten adapter to jakiś biedny Ci wyszedł poza tym dokładnie gdzie chcesz "wstrzykiwać" elementy z modułu prism-a? Bo mam problem by znaleźć właściwy "placeholder" w twoim kodzie.

Pozdrawiam,

mr-owl

P.S. Upewnij się że RegionAdapter jest ustawiony na właściwy typ (np Tab z Ribbon-a) i czy masz właściwy placeholder ustawiony.

0

dzięki za odpowiedź
chodzi o to, że ze zwykłym (standardowy wpf) ribbonem działa,a z ribbonem z devexpress już nie

co ciekawe
gdy mam taki kod

 <ContentControl prism:RegionManager.RegionName="{x:Static core:RegionNames.RibbonRegion}" />

to region "wstaje" i sa ładowane tam kontrolki

a gdy region jest ribbonem

<xmlns:dxr="clr-namespace:DevExpress.Xpf.Ribbon;assembly=DevExpress.Xpf.Ribbon.v20.1"/>
 <dxr:RibbonControl DockPanel.Dock="Top" MDIMergeStyle="Always" prism:RegionManager.RegionName="{x:Static core:RegionNames.RibbonRegion}">

to region nie "wstaje" - kontrolki się nie ładują
i nie rozumiem czemu

1 użytkowników online, w tym zalogowanych: 0, gości: 1