Silverlight: проблема с Childwindow и фреймворком навигации - PullRequest
0 голосов
/ 01 февраля 2011

Может ли кто-нибудь помочь мне с childwindow и Navigation?

Я создал дочернее окно из кода и установил его содержимое как

ChildWindow CW = new ChildWindow();
CW.Content = new MainPageMenu(param1);

Здесь "MainPageMenu" сама по себе является страницей Silverlight сnavigation: Frame "

В конструкторе я перемещаюсь по различным страницам в соответствии с" param1 ".

При переходе на нужную страницу в адресной строке ie отображается обновленный uri.

Должно ли это показать это?поскольку страница перемещается в дочернем окне ......?

Это отлично работает в первый раз.Как только я закрываю дочернее окно и снова открываю с diff "param1", чтобы перейти на другую страницу

, он никогда не будет перемещен .. !!!он показывает ту же страницу, что и для первого вызова ...

в строке нет ошибок -

this.ContentFrame.Navigate(u); 

в конструкторе.

Этоошибка в структуре навигации или я должен что-то еще для достижения этого?

Пожалуйста, помогите.

1 Ответ

1 голос
/ 01 февраля 2011

Я вижу, вы уже поняли, что ключ JournalOwnership здесь.Но только для большей предыстории, так что это менее волшебный и более сложный алгоритм, вот как Navigation Framework определяет, нужно ли интегрироваться с журналом браузера, на основе того, что для Frame.JournalOwnership установлено.

JournalOwnership.Automatic(по умолчанию) - если Frame является «верхним уровнем» Frame, он будет перемещаться по журналу браузера.Если это не так, то не будет.«Верхний уровень» означает, что если он поднимается по визуальному дереву, он не находит никаких других Frame по пути.

JournalOwnership.OwnsJournal - Frame всегда будет иметь собственный журнал и не будет пытатьсявзаимодействовать с журналом браузера.

JournalOwnership.UsesParentJournal - Frame всегда будет интегрироваться с браузером.Если это не верхний уровень Frame, это вызывает исключение.

Что интересно в ChildWindow, так это то, что когда Frame поднимается по визуальному дереву, чтобы увидеть, является ли он верхним уровнем"Frame, он не найдет его (потому что Popup не имеет корня в визуальном дереве таким же образом, а ChildWindow использует Popup).Следовательно, он будет думать, что это верхний уровень (что может быть не совсем правильно в данном случае, но что еще он может сделать?), Поэтому он будет интегрирован с журналом браузера.

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