Как эффективно использовать Pivot? - PullRequest
1 голос
/ 23 мая 2011

У меня есть следующая структура данных в моем приложении WP7.И я генерирую три PivotItems через привязку данных, содержимое привязки.Интересным моментом является случай, когда происходит связывание для элементов элементов Pivot (Предметы), которые запрашиваются три раза, и снова изменения выбора.

Есть ли что-то, что я делаю неправильно?

Код:

<controls:Pivot Title="{StaticResource ApplicationName}" ItemsSource="{Binding Folders}" SelectedItem="{Binding SelectedFolder, Mode=TwoWay}" Name="_pivot">
    <controls:Pivot.ItemTemplate>
        <DataTemplate>
            <ListBox DataContext="{Binding Source={StaticResource Locator}}" ItemsSource="{Binding ThingsListViewModel.Items}"  />
        </DataTemplate>
    </controls:Pivot.ItemTemplate>

У меня есть три папки, когда создается элемент управления Pivot ThingsListViewModel.Items свойство выполняется трижды,и один раз каждый раз, когда выбор меняется.

Я ожидаю, что ThingsListViewModel.Items выполнит только изменение выбора в элементе управления Pivot.

1 Ответ

3 голосов
/ 29 мая 2011

Я думаю, что вам нужно слушать события LoadedPivotItem и Loaded сводной диаграммы. Событие Loaded будет всегда загружать первый PivotItem (LoadedPivotItem) не будет вызван. LoadedPivotItem вызывается, когда пользователь перемещается к другому PivotItem.

На основании этих событий вы должны затем выполнить свои запросы для текущей выбранной страницы. Вы также можете захотеть, чтобы флаг указывал, как только вы загрузили данные для каждого Pivot, чтобы избежать повторного выполнения запросов.

...