2

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

4

1 回答 1

3
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");

于 2010-04-13T03:10:52.993 回答