【发布时间】:2010-04-13 02:36:52
【问题描述】:
在 silverlight prism 应用程序中,我有一个区域 (ContentControl),并希望在添加另一个视图之前删除当前活动的视图。我尝试使用 region.PropertyChanged 事件,但它没有触发。我可以在添加新视图的代码中执行此操作,但这会分散我的代码。如何做到这一点?谢谢您的回复。
【问题讨论】:
标签: silverlight events prism region
在 silverlight prism 应用程序中,我有一个区域 (ContentControl),并希望在添加另一个视图之前删除当前活动的视图。我尝试使用 region.PropertyChanged 事件,但它没有触发。我可以在添加新视图的代码中执行此操作,但这会分散我的代码。如何做到这一点?谢谢您的回复。
【问题讨论】:
标签: silverlight events prism region
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");
【讨论】: