Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# 内置按钮选择的Listpicker_C#_Windows Phone 7_Listpicker - Fatal编程技术网

C# 内置按钮选择的Listpicker

C# 内置按钮选择的Listpicker,c#,windows-phone-7,listpicker,C#,Windows Phone 7,Listpicker,我是一名学生,目前正在Windows phone上做一个项目。基本上,我正在创建一个应用程序库。问题是,当我使用listpicker作为我想要浏览的房间的一个选项时,每个选项都使用一个集成按钮。我希望每个按钮都能引导我进入不同的肖像页面。例如,当我按下“房间101”选项上的按钮时,它将引导我进入“第101页”,如果选择了“房间102”,则打开“第102页”。 这是我的C代码 使用系统; 使用System.Collections.Generic; 使用System.Linq; Net系统; 使用S

我是一名学生,目前正在Windows phone上做一个项目。基本上,我正在创建一个应用程序库。问题是,当我使用listpicker作为我想要浏览的房间的一个选项时,每个选项都使用一个集成按钮。我希望每个按钮都能引导我进入不同的肖像页面。例如,当我按下“房间101”选项上的按钮时,它将引导我进入“第101页”,如果选择了“房间102”,则打开“第102页”。 这是我的C代码

使用系统;
使用System.Collections.Generic;
使用System.Linq;
Net系统;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Navigation;
使用Microsoft.Phone.Controls;
使用Microsoft.Phone.Shell;
名称空间库
{
公共部分类位置:PhoneApplicationPage
{
公共类抽样数据
{   
公共弦楼
{
得到;
设置
}
公共弦乐室
{
得到;
设置
}
}
公共场所()
{
初始化组件();
列表数据源=新列表();
Add(newsampledata(){Floor=“First”,Room=“101”});
Add(newsampledata(){Floor=“First”,Room=“102”});
Add(newsampledata(){Floor=“First”,Room=“103”});
this.listPicker.ItemsSource=数据源;
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
SampleData data=(发送者作为按钮)。DataContext作为SampleData;
ListPickerItem PresseItem=
此.listPicker.ItemContainerGenerator.ContainerFromItem(数据)作为ListPickerItem;
如果(按editem!=null)
{
this.NavigationService.Navigate(新Uri(“/Room.xaml”,UriKind.Relative));
}
}
}
}

一旦您根据SelectionChanged事件选择了EdItem或SelectedIndex,您就可以导航到相应的页面。

由于您的问题不太清楚,我假设您知道如何按下项目,您的问题是如何导航到正确的页面

在单击处理程序中,执行以下操作

private void Button_Click(object sender, RoutedEventArgs e)
{
    SampleData data = (sender as Button).DataContext as SampleData;
    this.NavigationService.Navigate(new Uri("/Room.xaml?roomId=" + data.Room.ToString(), UriKind.Relative));
}
在房间的OnNavigatedTo处理程序页面中,您可以执行以下操作:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
         base.OnNavigatedTo(e);

        int roomId = (int)NavigationContext.QueryString["roomId"];

        if(roomId == 101)
        {
            //Modify page content for room 101
        }
        else if(roomId == 102)
        {
            //Modify page content for room 102
        }
        //...
    }
如果你真的想导航到一个完全不同的页面,你只需要修改导航Uri

this.NavigationService.Navigate(new Uri(string.Format("/Room{0}.xaml", data.Room), UriKind.Relative)

注意:但通常情况下,您只想根据传递给页面的数据调整页面内容。

是否有您想问的问题?我的意思是如何在每个选项中指定每个按钮命令以打开不同的特定页面。很抱歉,但我不太确定是否理解您的答案。您可以更详细一点吗?使用SelectionChanged事件,查看SelectedItem或SelectedIndex,它为您提供了用户单击的项目感谢您的解释。让我开心。
this.NavigationService.Navigate(new Uri(string.Format("/Room{0}.xaml", data.Room), UriKind.Relative)