Пример #1
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            _viewA = (ViewA)_container.Resolve(typeof(ViewA));
            _viewB = (ViewB)_container.Resolve(typeof(ViewB));

            _region = _regionManager.Regions["ContentRegion"];

            _region.Add(_viewA);
            _region.Add(_viewB);
        }
 protected override void Adapt(Prism.Regions.IRegion region, System.Windows.Controls.StackPanel regionTarget)
 {
     // 区域内视图集合发生变化时引发的事件
     region.Views.CollectionChanged += (s, e) =>
     {
         if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
         {
             foreach (System.Windows.FrameworkElement element in e.NewItems)
             {
                 regionTarget.Children.Add(element);
             }
         }
         else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
         {
             foreach (System.Windows.FrameworkElement element in e.NewItems)
             {
                 if (regionTarget.Children.Contains(element))
                 {
                     regionTarget.Children.Remove(element);
                 }
             }
         }
     };
 }