【问题标题】:Listbox Selected Item in Windows Phone 7Windows Phone 7 中的列表框选定项
【发布时间】:2011-10-29 05:18:13
【问题描述】:

我正在为 Windows Phone 7 编写应用程序,我创建了一个主页,其中包含一个列表框,其中包含我的所有项目,这些项目是其他页面的名称。 所以当我点击一个项目时,我应该导航到页面,但是当我点击手机时,我会报错。

这是我的代码:

private void NavigateToPages_Click(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem == null) {}
        else
        {
            string uri = listBox1.SelectedItem.ToString();

            switch (uri)
            {
                case "Quadratic Eq.":
                    Navigate("/Pages/EQ.xaml");
                    break;
                case "Average":
                    Navigate("/Pages/Average.xaml");
                    break;
                case "Pythagoras":
                    Navigate("/Pages/pythagoras.xaml");
                    break;
                case "Trigonometry":
                    Navigate("/Pages/Trigon.xaml");
                    break;
                case "Percentage":
                    Navigate("/Pages/Percentoff.xaml");
                    break;
                case "Prime Number":
                    Navigate("/Pages/prime.xaml");
                    break;
                case "Factorize":
                    Navigate("/Pages/Factorize.xaml");
                    break;
                case "GCD & LCD":
                    Navigate("/Pages/GG.xaml");
                    break;
                default:
                    MessageBox.Show("Select a function!");
                    break;
            }
        }

它给了我选择一个功能,但我选择了一个项目,这在我的应用程序中是一样的。 我写这段代码是因为没有权限事件列表框项

【问题讨论】:

  • 发布您遇到的错误。

标签: c# windows-phone-7 listbox


【解决方案1】:

您应该使用ListBoxSelectionChanged 事件而不是您正在使用的方法。

在 xaml 中:

 <ListBox SelectionChanged="ListBoxSelectionChanged" >

        </ListBox>

在您的 xaml.cs 文件中:

  private void ListBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ListBox lb = ((ListBox) sender);
                if (lb.SelectedIndex == -1)
                    return;

 string uri = lb.SelectedItem.ToString();

            switch (uri)
            {
                case "Quadratic Eq.":
                    Navigate("/Pages/EQ.xaml");
                    break;
                case "Average":
                    Navigate("/Pages/Average.xaml");
                    break;
                case "Pythagoras":
                    Navigate("/Pages/pythagoras.xaml");
                    break;
                case "Trigonometry":
                    Navigate("/Pages/Trigon.xaml");
                    break;
                case "Percentage":
                    Navigate("/Pages/Percentoff.xaml");
                    break;
                case "Prime Number":
                    Navigate("/Pages/prime.xaml");
                    break;
                case "Factorize":
                    Navigate("/Pages/Factorize.xaml");
                    break;
                case "GCD & LCD":
                    Navigate("/Pages/GG.xaml");
                    break;
                default:
                    MessageBox.Show("Select a function!");
                    break;
            }


                lb.SelectedIndex = -1;
            }

【讨论】:

  • willmel 谢谢你,我已经解决了用 SeletedIndex 更改 SelectedItem 的问题。
  • 酷,您应该确认您希望使用按钮而不是列表本身进行导航。单击一个项目然后立即导航到该页面是一种更常见的范例。
【解决方案2】:

您应该使用超链接控件,以便目标页面已经在列表项中。 您也可以将其绑定到动态数据源。

例如:

                           <HyperlinkButton NavigateUri="/Factorize.xaml"
                                         Style="{StaticResource HyperlinkEmptyStyle}"
                                         DataContext="{Binding}">
                            <localControls:HeaderedContentControl Style="{StaticResource MultilineHyperlinkStyle}"
                                                                  Header="{Binding Resources.menu_01}"
                                                                  Content="{Binding Resources.menu_02}"/>
                        </HyperlinkButton>

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 2012-12-24
    • 2012-05-30
    • 1970-01-01
    • 2014-08-30
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多