代码之家  ›  专栏  ›  技术社区  ›  synergetic

Silverlight Prism区域事件

  •  2
  • synergetic  · 技术社区  · 16 年前

    在Silverlight Prism应用程序中,我有一个区域(ContentControl),希望在添加其他视图之前删除当前活动的视图。我尝试使用region.propertychanged事件,但它没有触发。我可以在代码中添加新视图,但这会分散我的代码。如何做到这一点?谢谢回复。

    1 回复  |  直到 16 年前
        1
  •  3
  •   PL.    16 年前
    public static class RegionManagerExtensions 
    {
        public static void RemoveCurrentlyActiveAndThenAdd<TView>(
            this IRegionManager regionManager, 
            string regionName)
        {
            var region = regionManager.Regions[regionName];
            while (region.ActiveViews.Any()) 
                region.Remove(region.ActiveViews.First());
    
            var view = ServiceLocator.Current.GetInstance(typeof(TView));
            regionManager.Regions[regionName].Add(view);
        }
    }
    

    然后在代码中,您可以执行以下操作: regionManager.RemoveCurrentlyActiveAndThenAdd<MyView)("MyRegion");