Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone:NavigateToAction有时会重新初始化视图,有时不会_C#_Xaml_View_Windows Phone - Fatal编程技术网

C# Windows Phone:NavigateToAction有时会重新初始化视图,有时不会

C# Windows Phone:NavigateToAction有时会重新初始化视图,有时不会,c#,xaml,view,windows-phone,C#,Xaml,View,Windows Phone,我已经尝试解决以下问题几个小时了: 我正在开发一个游戏,我必须在几个视图之间切换。当我在游戏视图中时,最后有一个名为“Return match”的按钮,它会导航回“PlayerSelectView”,在那里设置玩家: <Button Tag="{Binding Source={StaticResource Options}, Path=Effect}" Width="300" MinHeight="70"> <localControls:DropShad

我已经尝试解决以下问题几个小时了: 我正在开发一个游戏,我必须在几个视图之间切换。当我在游戏视图中时,最后有一个名为“Return match”的按钮,它会导航回“PlayerSelectView”,在那里设置玩家:

<Button Tag="{Binding Source={StaticResource Options}, Path=Effect}" Width="300" MinHeight="70">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.GV_ReturnMatch}"/>
            <i:Interaction.Triggers>
                <ic:DataTrigger Binding="{Binding Result, ElementName=MessageBoxBehavior}" Value="OK">
                    <i:InvokeCommandAction Command="{Binding NewGameCommand}" />
                    <ic:NavigateToPageAction TargetPage="/Views/PlayerSelectView.xaml" />
                </ic:DataTrigger>
            </i:Interaction.Triggers>
            <i:Interaction.Behaviors>
                <behaviors:MessageBoxBehavior x:Name="MessageBoxBehavior" Text="{Binding LocalizedText.MAIN_YouWillLoseYourPreviousGame}" IsEnabled="{Binding IsGameInitialized}" />
            </i:Interaction.Behaviors>
        </Button>
然后使用“继续”按钮返回GameView:

    <Button HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding IsGameInitialized, Converter={StaticResource BoolToVisibilityConverter}}" Tag="{Binding Source={StaticResource Options}, Path=Effect}" Width="300" MinHeight="70" FontWeight="Normal">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.MAIN_Continue}"/>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Tap">
                    <ic:NavigateToPageAction TargetPage="/Views/GameView.xaml" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>

当我现在点击“返回比赛”时,PlayerSelectView总是被重新初始化

为什么现在要重新初始化PlayerSelectView?另一件事是,当新玩家重新设置并且游戏开始时,它只是返回到屏幕上的游戏(这是GameView上的一个弹出层)

有人知道该怎么做吗

更新: 游戏开始时,将显示MainView。通过此按钮,用户将被带到PlayerSelectView:

       <Button Tag="{Binding Source={StaticResource Options}, Path=Effect}" Width="300" MinHeight="70">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.MAIN_NewGame}"/>
            <i:Interaction.Triggers>
                <ic:DataTrigger Binding="{Binding Result, ElementName=MessageBoxBehavior}" Value="OK">
                    <i:InvokeCommandAction Command="{Binding NewGameCommand}" />
                    <ic:NavigateToPageAction TargetPage="/Views/PlayerSelectView.xaml" />
                </ic:DataTrigger>
            </i:Interaction.Triggers>
            <i:Interaction.Behaviors>
                <behaviors:MessageBoxBehavior x:Name="MessageBoxBehavior" Text="{Binding LocalizedText.MAIN_YouWillLoseYourPreviousGame}" IsEnabled="{Binding IsGameInitialized}" />
            </i:Interaction.Behaviors>
        </Button>
<Button Command="{Binding StartGameCommand}" CommandParameter="{Binding NavigationService, ElementName=PlayerSelectViewControl}"  Tag="{Binding Source={StaticResource Options}, Path=Effect}" Padding="0">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.PLSEL_StartGame}"/>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Tap">
                    <ic:NavigateToPageAction TargetPage="/Views/GameView.xaml"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>

在这里创建和编辑玩家。游戏从以下按钮开始:

       <Button Tag="{Binding Source={StaticResource Options}, Path=Effect}" Width="300" MinHeight="70">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.MAIN_NewGame}"/>
            <i:Interaction.Triggers>
                <ic:DataTrigger Binding="{Binding Result, ElementName=MessageBoxBehavior}" Value="OK">
                    <i:InvokeCommandAction Command="{Binding NewGameCommand}" />
                    <ic:NavigateToPageAction TargetPage="/Views/PlayerSelectView.xaml" />
                </ic:DataTrigger>
            </i:Interaction.Triggers>
            <i:Interaction.Behaviors>
                <behaviors:MessageBoxBehavior x:Name="MessageBoxBehavior" Text="{Binding LocalizedText.MAIN_YouWillLoseYourPreviousGame}" IsEnabled="{Binding IsGameInitialized}" />
            </i:Interaction.Behaviors>
        </Button>
<Button Command="{Binding StartGameCommand}" CommandParameter="{Binding NavigationService, ElementName=PlayerSelectViewControl}"  Tag="{Binding Source={StaticResource Options}, Path=Effect}" Padding="0">
            <localControls:DropShadowTextBlock Text="{Binding LocalizedText.PLSEL_StartGame}"/>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Tap">
                    <ic:NavigateToPageAction TargetPage="/Views/GameView.xaml"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>

…它也运行此代码:

private void StartGame()
    {
        BusinessLogic.GameLogic.Initialize(new List<Player>(Players));
    }
private void StartGame()
{
BusinessLogic.GameLogic.Initialize(新列表(玩家));
}

从那里,用户可以返回主视图(菜单),退出游戏(状态保留)或更改选项。

您可以详细说明页面与前向/后向导航的关系吗?我已经用一些信息更新了帖子。你还需要更多吗?