取得結束を解決するビュー
-
20-09-2019 - |
質問
私はじョ、思わいます。私は現在実験中での楽勝枠組みのもんめいしています。
また注入のViewModelsへの利用を参考にViewModelのcodebehindのビュー件の有する[依存性]で、セッタを設定しまDataContext右のビューを使います。清楚なかったのかも、と思いました。
ようにしているアプリとしてシングルウィンドウで、注意見ではなくて、マルチウィンドウのウィンドウを扱い開\閉鎖) 私は、窓からの景色をUserControls、追加のウィンドウに表示します。勤務しているものの、ViewModelたな注入を推計したところ、のーを使用しません。解決の分野においては、数多くの合成とデニースザメネースパークに追加で手動でのコード使用の解決の依存関係"の作成を行った。
かの設定画面で、その場合を追加する見通話サイトの最新トレンドのビューが変更の結果としてUIの行動など、行動の便が良いことから、で結束でき、そのマジック?
解決
の解決の問題として、ウィンドウにてViewModelとなっており、その他のViewModelsのUserControls公開してい物件です。その後のお話サイトの最新トレンドのためのウィンドウまたは結合機構に結合するUserControlのDataContexts適正性の主ViewModel.以来主ViewModelが解決されてから統一コンテナのように他のすべてのViewModel-sを注入しています。
他のヒント
この問題は通常、地域やRegionManagerを使用して解決されます。メインウィンドウビューモデルでは、領域のセットが作成され、RegionManagerに加えます。その後のviewmodelsは解決済みとRegion.Viewsコレクションに追加することができます。
XAMLでは、領域は、通常、メインビューモデルの領域プロパティにバインドのItemsControlのItemsSourceプロパティを有することによって注入される。
だから、メイン画面のViewModelにあなたはこのような何かを持っているでしょう
public class TestScreenViewModel
{
public const string MainRegionKey = "TestScreenViewModel.MainRegion";
public TestScreenViewModel(IUnityContainer container, IRegionManager regionManager)
{
this.MainRegion = new Region();
regionManager.Regions.Add(MainRegionKey, this.MainRegion);
}
public Region MainRegion { get; set; }
}
これはあなたはIModuleで正常に解決されるだろう。
#region IModule Members
public void Initialize()
{
RegisterViewsAndServices();
var vm = Container.Resolve<SelectorViewModel>();
var mainScreen = Container.Resolve<TestScreenViewModel>();
mainScreen.MainRegion.Add(vm);
var mainView = ContentManager.AddContentView("Test harness", mainScreen);
}
#endregion
と
のようなものを探して、あなたのテンプレートのXAML表現 <DataTemplate DataType="{x:Type TestModule:TestScreenViewModel}">
<ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto">
<StackPanel>
<ItemsControl ItemsSource="{Binding Path=MainRegion.Views}" />
</StackPanel>
</ScrollViewer>
</DataTemplate>