是否有任何理由为什么在分配数据转换器的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)时我可以使用其他事件。
由于
答案 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
事件。