Это кажется, что было бы легкое решение, но я трачу впустую слишком много времени, пытаясь понять это. Возможно, я разрабатываю свое приложение неправильно (который мог бы иметь место), поэтому выручите меня, если у Вас есть лучшее решение.
Я разрабатываю уровень предприятия приложение WPF, которое много походит на Outlook с a Ribbon
вместо панели инструментов. У меня есть много различных модулей, которые загружаются в кадр, когда пользователь нажимает на a RibbonButton
. Следует иметь в виду, что его лента совместно используется через все модули.
Таким образом, у меня есть оболочка с лентой и кадром. Когда пользователь нажимает на кнопку Ribbon, она загружает надлежащий модуль (usercontrol) в кадр. Все хорошо. Однако, если я перешел к другому модулю (путем нажатия на другой RibbonButton) и затем нажимаю на оригинал RibbonButton
, У меня теперь есть два экземпляра того же модуля, открытого..., но только один показывают в кадре... другой модуль находится в стопке кадра.
Таким образом, мой вопрос, как я говорю кадру закрывать usercontrol, когда я перешел к другому модулю? Я попытался установить JournalEntry.KeepAlive="False"
, но это все еще не работало. Какие-либо мысли? Существует действительно не много кода для регистрации, но я могу сделать так, если он поможет Вам.
Если вы никогда не собираетесь «возвращаться» к предыдущей записи, вы можете использовать NavigationService.RemoveBackEntry () , чтобы очистить историю каждый раз, когда вы путешествуете. Самый простой способ сделать это - обработать событие Frame Navigated :
frame.Navigated += frame_Navigated;
void frame_Navigated(object sender, NavigationEventArgs e)
{
frame.NavigationService.RemoveBackEntry();
}