Silverlight 银光棱镜区事件

Silverlight 银光棱镜区事件,silverlight,events,prism,region,Silverlight,Events,Prism,Region,在silverlight prism应用程序中,我有一个区域(ContentControl),希望在添加另一个视图之前删除当前活动的视图。我尝试使用region.PropertyChanged事件,但未触发。我可以在代码中添加新视图,但这会分散我的代码。如何做到这一点?谢谢你的回复 public静态类regionmanager public static class RegionManagerExtensions { public static void RemoveCurrently

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

public静态类regionmanager
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);
    }
}
{ 公共静态无效删除当前活动并添加( 此IRegionManager区域管理器, 字符串(区域名称) { var region=regionManager.Regions[regionName]; while(region.activeview.Any()) region.Remove(region.ActiveViews.First()); var view=ServiceLocator.Current.GetInstance(typeof(TView)); regionManager.Regions[regionName].Add(视图); } }

然后在代码中可以执行:
regionManager.RemoveCurrentlyActiveAndThenAddI接受这个答案,但仍然想知道为什么propertychanged不会触发