簡體   English   中英

WP8-在離開數據透視表之前顯示MessageBox

[英]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中的一些示例。

http://msdn.microsoft.com/zh-CN/library/windowsphone/develop/microsoft.phone.controls.pivot.selectionchanged(v=vs.105).aspx

我還沒有嘗試過,但是我相信即使發生彈出窗口,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM