События Призм Silverlight - PullRequest
       31

События Призм Silverlight

2 голосов
/ 13 апреля 2010

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

1 Ответ

3 голосов
/ 13 апреля 2010
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");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...