2012-06-22 3 views
0

Мое приложение имеет меню в стиле Outlook слева с изображением справа. Я использую API навигации Prism. Когда пользователь перемещается между пунктами меню, отображается содержимое, которое было последним показано для данного пункта меню, так что пользователь может перемещаться между двумя областями для сравнения информации. Это предполагает наличие основной области отображения с отдельной областью для каждой «страницы» (то есть UserControl для отображения содержимого для выбора меню), вложенного в нее.Зависимость Изменение свойства, вызванное коллекциями, но не одиночные привязки

Каждая страница содержит хотя бы один экземпляр конкретного элемента управления, и этот элемент управления имеет DependencyProperty с обработчиком PropertyChangedCallback. Я заметил, что при навигации по странице все элементы управления на странице, у которых есть связанные с ними коллекции, запускают обработчик элемента управления PropertyChangedCallback (это то, что я хочу), но ни одна из привязок, не связанных с сборкой.

Я вижу, что переход на страницу вызывает событие NavigatedTo в основной (внешней) области. Я не хочу, чтобы событие NavigatedTo в зависящей от страницы (внутренней) области запускалось, так что все в порядке. Но я не понимаю, почему любой из элементов управления или привязок во внутренней области будет уведомлен об изменении, когда это внешний регион получает событие.

Каждая привязка для коллекции является ListCollectionView над ObservableCollection, и каждый элемент коллекции реализует INotifyPropertyChanged.

Мои вопросы таковы:

  1. Какое событие является каждая коллекция обработки, что мои не-коллекции не, вызывая изменение свойства зависимостей?
  2. Почему навигация во внешнюю область влияет на элементы управления во внутренней области? Какое событие должен получить внутренний регион?
  3. Как я могу реализовать привязки не-коллекции, чтобы они имели тот же эффект?

ответ

0

Без образца Я могу только предположить, что ваша проблема не связана с привязками или свойствами.

Скорее всего, ваша проблема связана с вашими взглядами. В одном случае, когда вы переключаете представления - вы получаете старую копию вида из контейнера (MEF? Unity?), А в другом случае создается и заполняется новый экземпляр, создающий все эти события.