[英]WP8 - Show MessageBox before leaving Pivotitem
我在一個PivotItems中加載了一些測驗問題。
我的問題是,當用戶位於此PivotItem中時,如果要滑動到另一個PivotItem,我想在將該PivotItem留給另一個之前,先彈出MessagePrompt ,詢問用戶是否真的要完成測驗。 我嘗試了LostFocus事件和Unloaded事件,但沒有發生。
我該如何處理?
附言:我知道測驗應該在另一頁中,但是我想通過pivotItems實現。
訂閱樞軸selectionChanged事件
Pivot_SelectionChanged Event
{
if(Pivot.selectedindex==1|| 3|| 4)
{
Messagebox();
}
}
假設2是您的樞紐項目索引。
現在,如果用戶選擇“是”,則將數據透視表selectedindex分配給2
每當更改PivotItem時,您都可以訂閱SelectionChanged事件。 檢查鏈接以獲取MSDN中的一些示例。
我還沒有嘗試過,但是我相信即使發生彈出窗口,PivotItem仍然會更改。 因此,一旦出現彈出窗口並為用戶提供了選擇,使其停留在當前Pivot上或轉到下一個,則可能必須以編程方式將PivotItem更改回測驗Pivot。
一種比較混亂的方法是保留當前選定的“數據透視索引”狀態,並使用Windows Phone控件工具包訂閱DragStartedGestureEventArgs。
<controls:Pivot x:Name="pivotControl" Title="MY APPLICATION">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener DragStarted="SelectedPivotChanging"></toolkit:GestureListener>
</toolkit:GestureService.GestureListener>
<controls:PivotItem Header="item1">
<Grid />
</controls:PivotItem>
<controls:PivotItem Header="item2">
<Grid/>
</controls:PivotItem>
</controls:Pivot>
private void SelectedPivotChanging(object sender, DragStartedGestureEventArgs e)
{
if (pivotControl.SelectedIndex == 0)
{
if (MessageBox.Show("Are you sure you wish to navigate away?", "Un-Answered questions", MessageBoxButton.OKCancel)
== MessageBoxResult.Cancel)
{
//pivotControl.SelectedIndex = previousIndex;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.