将ListView选择从Page2传输到Page1

时间:2015-03-29 06:53:23

标签: c# xaml windows-phone-8.1

我有一个项目要求我询问用户的国家/地区和电话号码。电话号码部分工作正常。国家部分本身也很好。考虑到这是一个2页的项目,我在Page2.xaml中有一个ListView,它显示了所有国家的列表(绑定到具有我的ViewModel的.cs文件(类文件)的数据)。在Page1.xaml中,我有一个文本块(以及一个我们无需担心的电话号码文本框),其 tapped 属性导航到Page2(并显示国家/地区列表)。我想知道:

  1. 如何从列表中选择所选项目(即第2页)并将其显示在文本块中(在第1页中)。

  2. 如果有一个1页的方式来实现这一点,也就是说,如果我可以用类似PlaceholderText(表示选择你的国家)以及何时显示listview本身单击,它将打开整个国家/地区列表。这类似于注册WhatsApp或Line,或类似的服务。

  3. 如果有办法实施#2,请引导我走正确路径。

    仅供参考,对于#1,我尝试通过添加

    来实现本地存储
    Windows.Storage.ApplicationDataContainer localsetting = Windows.Storage.ApplicationData.Current.LocalSettings;
    lstv_countries.SelectedItem = localsetting.Values["Countries"].ToString();
    
    在ListView(Page2)的ItemsSelection事件中,然后

     
    Windows.Storage.ApplicationDataContainer localsetting = Windows.Storage.ApplicationData.Current.LocalSettings;
    localsetting.Values["Countries"] = testText.Text;
    

    在textblock的GotFocus事件中(在Page1中)。这不起作用:(

    感谢您的回复。

    谢谢!

1 个答案:

答案 0 :(得分:0)

你可以使用组合框控件来完成同样的事情而不用大惊小怪。

参考https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh780616.aspx

修改 在回复您的评论时,我建议您这样做:

在NavigatedTo部分中设置:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        int x;
        if (int.TryParse(e.Parameter.ToString(), out x))
        {
            textText.Text=CountryList[x].Name
        }
        else
        {
            textText.Text="--Select your Country--";
        }
    }

在你的page2中,在你的selectionchanged事件处理程序

中设置它
Frame.Navigate( typeof( Page1),Listview.SelectedIndex );