2012-01-27 94 views
0

是否有任何理由說明爲什麼事件LoadedPivotItem在分配了Pivot的DataContext時未觸發,因此創建數據透視表項?Pivot控件上的LoadedPivotItem事件未被第一次觸發,WP7

只有在Swype處理已經由_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

我認爲問題是您的頁面如何加載的時間。我沒有看到你在你的代碼中附加了一個事件處理程序,所以我假設你在你的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事件。