2
在silverlight棱鏡應用程序中,我有一個區域(ContentControl),並希望在添加其他視圖之前刪除當前活動的視圖。我試圖使用region.PropertyChanged事件,但它不會觸發。我可以在添加新視圖的代碼中執行此操作,但這會分散我的代碼。如何實現這一目標?感謝您的回覆。Silverlight棱鏡區域事件
在silverlight棱鏡應用程序中,我有一個區域(ContentControl),並希望在添加其他視圖之前刪除當前活動的視圖。我試圖使用region.PropertyChanged事件,但它不會觸發。我可以在添加新視圖的代碼中執行此操作,但這會分散我的代碼。如何實現這一目標?感謝您的回覆。Silverlight棱鏡區域事件
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");
我接受這個答案,但還是想知道爲什麼會的PropertyChanged不火 – synergetic 2010-04-13 07:08:03