Событие LoadedPivotItem для элемента управления Pivot не запускается в первый раз, WP7 - PullRequest
0 голосов
/ 27 января 2012

есть ли причина, по которой событие LoadedPivotItem не вызывается при назначении DataContext из Pivot, в результате чего создаются элементы Pivot?

Он запускается только при переходе к следующему элементу пивота, который уже обработан событием _SelectionChanged.

 protected override void OnNavigatedTo
    (System.Windows.Navigation.NavigationEventArgs e)
    {
        var someData = LoadData();

        pivot.DataContext = someData;
        base.OnNavigatedTo(e);
    }

 void pivot_LoadedPivotItem(object sender, PivotItemEventArgs e)
    {
        // Will not stop here after data being assigned to DataContext
    }

Мне нужно это событие, в частности, потому что мне нужен PivotItem и его контекст данных для дальнейшего использованияоперации.Есть ли что-то, что я делаю неправильно, или есть какое-то другое событие, которое я могу использовать здесь при получении PivotItem (PivotItemEventArgs).

Спасибо

1 Ответ

0 голосов
/ 29 января 2012

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

Попробуйте удалить обработчик событий из вашего XAML и переместить его в ваше OnNavigatedTo событие (псевдокод):

protected override void OnNavigatedTo (NavigationEventArgs e)
{
    var someData = LoadData();

    pivot.DataContext = someData;
    OnLoadedPivotItem += pivot_LoadedPivotItem;
    base.OnNavigatedTo(e);
}

Если это не сработает, эта статья может оказаться полезной.Он описывает последовательность событий, которые происходят при загрузке дерева управления.Предложение, которое выскочило как потенциально полезное, было присоединение к событию LayoutUpdated вместо события Loaded.

...