0

2つのモジュールがあります。1つはヘッダーモジュール、もう1つはアイテムモジュールです。

'ItemsSummaryRegion'と呼ばれる領域を含むHeaderDetailsビューがあります。このリージョンは、ItemsモジュールからのビューItemListViewをリージョンに取り込むために登録されます。

regionManager.RegisterViewWithRegion("ItemsSummaryRegion", typeof(IItemListView));

問題は、この自動生成されたビューにアクセスして、表示するはずのアイテムのリストを設定するにはどうすればよいですか?これをHeaderDetailsビューのViewModelで設定したいと思います。

誰かがあなたがこれを行う方法を知っていますか?または、このデータを表示するためのより良い方法を提案できますか?

ありがとうございました。

4

2 に答える 2

2

2つのモジュールが非常に緊密に結合されている場合は、両方のビューを含むモジュールを1つだけにして、マスター/詳細を設定する方が理にかなっています。

この例は、達成しようとしていることと似たものを示しています 。http ://www.tanguay.info/web/index.php?pg=codeExamples&id=105

于 2010-03-01T22:20:11.787 に答える
0

unityContainerを使用して物を作成してから、AddandActivateを呼び出す必要があります。

    public TaskList(IEventAggregator eventAggregator, 
                    IRegionManager regionManager, 
                    IUnityContainer container)
    {
        _EventAggregator = eventAggregator;
        _RegionManager = regionManager;
        _Container = container;
    }


        IItemListVM vm = _Container.Resolve<IItemListVM>();
        IItemListView view = new IItemListView(vm);

        _RegionManager.Regions["ItemsSummaryRegion"].Add(view);
        _RegionManager.Regions["ItemsSummaryRegion"].Activate(view);

これにより、IRegion.Remove後でリージョンをクリアしたいときに電話をかけることができます。リージョンをビューに登録したいだけの場合は、それも可能です。ロジックの最後の数行を、RegisterViewWithRegionへの他の呼び出しに置き換えるだけです。

_RegionManager.RegisterViewWithRegion("ItemsSummaryRegion", 
     (x) => 
     { 
          _Container.Resolve<IItemListView>(); 
     });
于 2010-02-26T15:05:45.037 に答える