こんにちは、私は現在モデル/ビュー パターンと IOC で WPF を使用していますが、実行時に決定される 2 つだけを作成する必要がある 3 つのビューがあるという問題があります。
各ビューで、次のように xaml を使用してビューのオブジェクトを提供しています。
ビューA
<viewmodel:modelA x:Key="viewModel"/>
また
ViewB
<viewmodel:modelB x:Key="viewModel"/>
...等
また、これらのビューとそれに続くモデルには、次のような階層があります。
class modelA { public virtual ConfigA {get; set;} }
class modelB : modelA { public override ConfigB {get; set;} }
class modelC : modelB { public override ConfigC {get; set;} }
class ConfigA { public int Test { get; set;} }
class ConfigB : ConfigA { public int TestA { get; set;} }
class ConfigC : ConfigC { public int TestB { get; set;} }
現在、IOC を使用してコンテナーを作成し、必要なモデル (モデル B またはモデル C) のインスタンスを登録しています。必要なビューをインスタンス化しようとすると、container.resolve を介して、ViewA + ViewB または ViewA + ViewC のいずれかになります。
モデルの複数のインスタンス化を取得します。
modelB または modelC の 1 つのタイプのみを作成する場合。
switch (Object)
{
case 1:
modelB b = new modelB();
Container.RegisterInstance<modelB>(b, new ContainerControlledLifetimeManager());
RegionManager.Regions[RegionNames.MainRegion].Add(Container.Resolve<ViewB>());
break;
case 1:
modelC c = new modelC();
Container.RegisterInstance<modelC>(c, new ContainerControlledLifetimeManager());
RegionManager.Regions[RegionNames.MainRegion].Add(Container.Resolve<ViewC>());
break;
}
RegionManager.Regions[RegionNames.MainRegion].Add(Container.Resolve<ViewA>());
私が望むのは、コンテナーがモデルの既に構築されたインスタンスを使用し、これをビューに挿入することである場合、ビューの解決により、より多くのモデルが生成されます。誰か助けてくれたり、正しい方向に向けてくれたり、
ありがとう、