2

Silverlight プリズム アプリケーションでは、領域 (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 に答える