【问题标题】:list box item issue when navigate by using back key使用返回键导航时出现列表框项目问题
【发布时间】:2011-08-31 14:48:54
【问题描述】:

我有一个列表框,当单击列表项时,它会转到其详细信息页面。当我从详细信息页面按后退键时,如果我再次单击销售列表项,则不会导航到详细信息页面但如果我单击列表中的其他项目,它会导航到相应的详细信息页面。 实际上我没有在按下后退键时重新加载列表框。我只是从后面的堆栈中弹出它。如果我重新加载列表框,问题就不存在了。这个问题有没有解决方案。下面是我的代码。

列表视图页面

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    if (DetailPage.isBackkeyPressed && list != null)
    {
        DetailPage.isBackkeyPressed = false;
    }
    else
    {
        ListDetails(); //Reloading the page if list is empty
    }

    base.OnNavigatedTo(e);
}

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (listBox.SelectedIndex >= 0)
    {
        (Application.Current as App).obj_list = list[listBox.SelectedIndex];
        NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page
    }
}

详细页面

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
    isBackkeyPressed = true;//flag  for check if back key is pressed
    base.OnBackKeyPress(e);
}

【问题讨论】:

    标签: c# windows-phone-7


    【解决方案1】:

    您需要取消设置SelectedIndex,将其设置为-1,如下所示:

    private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (listBox.SelectedIndex >= 0)
        {
            (Application.Current as App).obj_list = list[listBox.SelectedIndex];
            NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page
    
            listBox.SelectedIndex = -1;
        }
    }
    

    【讨论】:

    • 或者处理每个项目上的点击事件(在ItemTemplate中设置)而不是处理SelectionChanged。
    • 不能为点击处理程序进行命令绑定 ;-)(但可以用于 SelectionChanged,使用 ToolkitExtensions nuget.org/List/Packages/ToolkitExtensions
    • 我指的是 Silverlight Toolkit 的用于 Tap 的 GestureHandler。但不管怎样,Mango 中的 Tap event 仍然是一个 event ,这意味着你不能直接 CommandBind 它,让我们回到原点。 (而且我更喜欢 System.Interactivity 保持清洁,因为它会更改每个版本)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多