如何将数据从CustomMessageBox传递到调用它的页面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据从CustomMessageBox传递到调用它的页面?相关的知识,希望对你有一定的参考价值。

我有一个页面,在那里我调用了一个 xaml布局页 作为一个显示国家列表的CustomMessageBox,我是借助LongListSelector来显示国家列表的。我在LongListSelector的帮助下显示国家列表。在选择国家后,我只是想关闭CustomMessageBox,并带着选择的国家回到调用这个CustomMessageBox的页面。如何实现这一点呢?这里是下面的代码片段。

FirstPage :

  CountrySelectionDialog countrySelectedDialog = new CountrySelectionDialog();
  CustomMessageBox cmd = new CustomMessageBox()
  {
        Content = countrySelectedDialog,
        Opacity = 0.9
  };

SecondPage即CountrySelectionDialog页面。

  private void on_Country_Selection(object sender, SelectionChangedEventArgs e)
    {
        if(e.AddedItems.Count>0)
        {
            country = e.AddedItems[0] as Country;
             // Now how to go back with selected country to the original page?

        }
    }
答案

在长列表选择器的选择变化事件中使用这个代码。

LLs_SelectionChange(....) 
{
String s= lls.SelectedItem;
MessageBox.close();
NavigationService.Navigate(new Uri("/YourPage.xaml?country="+s),UriKind.RelativeorAbsolute);
}

在你的页面中使用查询字符串获取国家。

另一答案

使用 IsolatedStorageSettings

例子

IsolatedStorageSettings userSettings=IsolatedStorageSettings.ApplicationSettings;
userSettings["Country"]=country;
userSettings.Save();

在得到国家后添加这个,然后添加 NavigationService.GoBack() 而在你想要的国家值的地方,使用下面的代码检查国家是否被存储在仓库中

if(userSettings.ContainsKey("Country")
{
    country=userSettings["Country"];
}

如果国家是字符串,上面的功能就会生效,如果是对象,你可以使用 电话应用服务 来保存国家值,然后返回导航并检查PhoneApplicationService是否含有 Country 对象。

另一答案

我使用了以下链接 如何用编程方式创建一个LongListSelector控件。 我没有创建一个单独的文件作为CustomMessageBox,而是以编程的方式创建了自己的xaml文件,并在CustomMessageBox中调用它。

另一答案

检查这个。

private void on_Country_Selection(object sender, SelectionChangedEventArgs e)
    {
        if(e.AddedItems.Count>0)
        {
            country = e.AddedItems[0] as Country;
            PhoneApplicationService.Current.State("COUNTRY") = country;
               //close the page



        }
    }

现在可以在任何地方检索国家代码。

String countrycode  = PhoneApplicationService.Current.State("COUNTRY");

以上是关于如何将数据从CustomMessageBox传递到调用它的页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 StatelessWidget 传递到 StatefulWidget?

如何将数据从 showmodalbottomsheet 传递到 Flutter 中的上一页

如何将数据从javascript传递到json

如何将数据从刀片传递到刀片文件

如何将数据从活动传递到正在运行的服务

如何快速将数据从视图控制器传递到容器视图