В моем приложении silverlight есть 2 области, использующие вид основной оболочки Prism 4 и unity, область аутентификации и область без аутентификации, а также пункт меню.
В аутентифицированной области существует намного больше субрегионов, в зависимости от введенного в нее представления.
При загрузке приложения мне будет представлен экран входа в систему «Неаутентифицированный регион», при входе в систему я буду представлен в Аутентифицированном регионе.
Когда я нажимаю кнопку выхода в меню, мне снова будет представлен вид входа в систему.
Но когда я вхожу в систему во второй раз, мое существующее представление, загруженное в аутентифицированной области, все еще там.
Я попробовал следующий код при выходе из системы, чтобы удалить все представления из этого региона, но представления, полученные из контейнера, по-прежнему являются существующим представлением.
var regions = this.RegionManager.Regions;
foreach (var region in regions)
{
if (region.Name == this.AuthenticatedRegionName)
{
var views = region.Views;
foreach(var view in views)
{
region.Remove(view);
}
}
}
Я действительно получаю ошибку не найденного ключа региона, когда по какой-то причине вызываю запрос навигации, но я думаю, что основная проблема связана с контейнером.
Как я могу указать единству, что все представления будут размещены?