C# 将ListView选择从第2页传输到第1页

C# 将ListView选择从第2页传输到第1页,c#,xaml,windows-phone-8.1,C#,Xaml,Windows Phone 8.1,我有一个项目,需要我问用户的国家和电话号码。电话号码部分工作正常。就其本身而言,国家部分也运转良好。考虑到这是一个2页的项目,我在Page2.xaml中有一个ListView,它显示绑定到一个.cs文件类文件的所有国家/地区数据的列表,该文件包含我的ViewModel。在Page1.xaml中,我有一个文本块和一个用于显示电话号码的文本框,我们不必担心谁的点击属性会导航到Page2并显示国家列表。我想知道: 如何从第2页的列表中获取所选项目并将其显示在第1页的文本块中 如果有一个1页的方法来实现

我有一个项目,需要我问用户的国家和电话号码。电话号码部分工作正常。就其本身而言,国家部分也运转良好。考虑到这是一个2页的项目,我在Page2.xaml中有一个ListView,它显示绑定到一个.cs文件类文件的所有国家/地区数据的列表,该文件包含我的ViewModel。在Page1.xaml中,我有一个文本块和一个用于显示电话号码的文本框,我们不必担心谁的点击属性会导航到Page2并显示国家列表。我想知道:

如何从第2页的列表中获取所选项目并将其显示在第1页的文本块中

如果有一个1页的方法来实现这一点,也就是说,如果我可以用一个占位符文本来显示listview本身,上面写着“选择您的国家”,当它被单击时,它会打开整个国家列表。这类似于注册WhatsApp或Line,或类似的服务

如果有办法实现2,请引导我找到正确的路径

仅供参考,对于1,我尝试通过放置

Windows.Storage.ApplicationDataContainer localsetting = Windows.Storage.ApplicationData.Current.LocalSettings; lstv_countries.SelectedItem = localsetting.Values["Countries"].ToString(); 在ListView页面2的ItemsSelection事件中,然后

Windows.Storage.ApplicationDataContainer localsetting = Windows.Storage.ApplicationData.Current.LocalSettings; localsetting.Values["Countries"] = testText.Text; 在第1页文本块的GotFocus事件中。这不起作用:

感谢您的回复


谢谢大家!

您可以使用combobox控件来实现相同的功能,而无需大惊小怪

提及

编辑 针对您的评论,我建议您做以下几点:

在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--";
        }
    }
在页面2中,在selectionchanged事件处理程序中设置此选项

Frame.Navigate( typeof( Page1),Listview.SelectedIndex );

嗨,谢谢你。我想利用SemanticZoom特性。这就是为什么我热衷于使用它。您的建议是什么?如果您坚持使用相同的方法,那么通过页面保持数据可用的最佳方法是在App.xaml.cs文件中创建一个静态变量。在第2页进行选择时更新它,并在第1页使用它我在ListView的SelectionChanged事件中使用了此逻辑-Windows.Storage.ApplicationDataContainer localsettings=Windows.Storage.ApplicationData.Current.localsettings;Windows.Storage.ApplicationDataContainer容器=localsettings.CreateContainerCountries,Windows.Storage.ApplicationDataCreateDisposition.Always;如果localsettings.Containers.ContainsKeyCountries{lstv_countries.SelectedItem=localsettings.Containers[countries].Values[countries];}App.Global_Variable=stringlstv_countries.SelectedItem;正如您在Page1中的Textblock的App.csIn GotFocus事件中所说,全局_变量是一个静态变量,我将其设置为:Windows.Storage.ApplicationDataContainer localsettings=Windows.Storage.ApplicationData.Current.localsettings;bool hascanner=localsettings.Containers.ContainsKeyCountries;bool-hasSettings=false;如果hasContainer{hasSettings=localsettings.Containers[Countries].Values.ContainesKeyCountries;}testText.Text=localsettings.Containers[Countries].Values.ContainesKeyCountries.ToString;它仍然不会接受所选项目。你有什么建议您确定返回到第1页时触发了textblock.gotfocus事件吗?