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