События региона призмы Silverlight

В приложении silverlight prism у меня есть область (ContentControl), и я хотел бы удалить текущее активное представление перед добавлением другого представления. Я попытался использовать событие region.PropertyChanged, но оно не сработало. Я могу сделать это в коде, в который добавляю новое представление, но это разбросает мой код. Как этого добиться? Спасибо за ответ.


person synergetic    schedule 13.04.2010    source источник


Ответы (1)


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

person PL.    schedule 13.04.2010
comment
Я принимаю этот ответ, но все же хотел бы знать, почему свойство propertychanged не срабатывает - person synergetic; 13.04.2010