WP7上第一次没有激活Pivot控件上的LoadedPivotItem事件

时间:2012-01-27 14:05:16

标签: windows-phone-7 pivot

是否有任何理由为什么在分配数据转换器的DataContext时不会触发事件LoadedPivotItem因此创建数据透视表项?

当我转到已经由_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 :(得分:0)

我认为问题在于您的网页加载方式。我没有看到你在代码中附加了一个事件处理程序,所以我假设你在XAML中指定了事件处理程序。在页面上的所有内容都已完全加载并连线之前,该事件可能会过早触发。

尝试从XAML中删除事件处理程序并将其移至OnNavigatedTo事件(伪代码):

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

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

如果这不起作用,this article可能会有所帮助。它描述了加载控制树时发生的事件序列。跳出可能有用的建议是附加到LayoutUpdated事件而不是Loaded事件。