簡體   English   中英

使用Prism,WPF更改區域視圖

[英]Change view in region using Prism, WPF

嘗試創建一個我希望在運行時更改的區域的視圖。 但是在運行時出現錯誤,如下所示...

        public MainWindowViewModel(IEventAggregator eventAggregator,IRegionManager regionManager, IUnityContainer container)
    {
        _regionManager = regionManager;

        NavigateCommand = new DelegateCommand<string>(Navigate);
        eventAggregator.GetEvent<UpdatedEvent>().Subscribe(Updated);
        eventAggregator.GetEvent<MapCenterChnagedEvent>().Subscribe(MapCenterChnagedEventHandler);

        eventAggregator.GetEvent<AssetSelectedEvent>().Subscribe(AssetSelectedEventHandler);
        _regionManager.RegisterViewWithRegion("ContentRegion", typeof(Views.GeoAssets));
        _regionManager.RegisterViewWithRegion("ContentRegionAsset", typeof(Views.AssetDetails));
        _regionManager.RegisterViewWithRegion("ContentRegionAsset", typeof(Views.Logs));
        _regionManager.RegisterViewWithRegion("ContentRegionAsset", typeof(Views.Keys));

        object view = container.Resolve<Views.Logs>();
        object view2 = container.Resolve<Views.Keys>();


        IRegion region = _regionManager.Regions["ContentRegionAsset"]; //get error , _regionManager has no regions defined
        region.Activate(view); trying to make view logs the active view

    }

查看XAML

視圖模型看起來不是注冊視圖的好地方。 我寧願瀏覽到那里,因為視圖模型可能會創建多次,並且視圖注冊更多是一次性的事情。

旁注:

  • 注入容器是邪惡的-而是注入工廠
  • 如果要顯示對象,請不要在視圖模型中創建視圖-而是創建視圖模型
  • 如果可以使用參數,則不要在構造函數中使用該字段(因為否則您將無法在以后的重構過程中刪除該字段時收到通知)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM