2010-04-13 4 views
2

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

ответ

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

+0

Я принимаю этот ответ, но все-таки хотелось бы знать, почему PropertyChanged не будет стрелять – synergetic

Смежные вопросы