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

时间:2015-05-08 09:34:20

标签: c# windows-phone-8

我有一个页面,我将一个 xaml布局页面称为CustomMessageBox,显示国家/地区列表。我在LongListSelector的帮助下显示国家/地区列表。选择国家后,我只想关闭CustomMessageBox并返回所选国家/地区到调用此CustomMessageBox的页面。怎么做到这一点? 以下是代码段:

第一页:

  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?

        }
    }

4 个答案:

答案 0 :(得分:0)

在长列表选择器的选择更改事件中使用此代码。

if ([[event allTouches]count] == 2)
    {
        imageView.multipleTouchEnabled=YES;
        imageView.userInteractionEnabled =YES;
        twoFingerPinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(twoFingerPinch:)];
    }

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer
{
    CGFloat scale = recognizer.scale;
    imageView.transform = CGAffineTransformScale(imageView.transform, scale, scale);
    recognizer.scale = 1.0;
}

使用查询字符串在您的页面中获取国家/地区。

答案 1 :(得分:0)

使用IsolatedStorageSettings

实施例

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

在获得国家/地区后添加此项,然后添加NavigationService.GoBack()以及您希望国家/地区价值的位置,请使用以下代码检查国家/地区是否存储在存储空间中

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

如果Country是字符串,则上述操作可用;如果是对象,则可以使用 PhoneApplicationService 保存国家/地区值,然后返回并检查PhoneApplicationService是否包含Country对象。

答案 2 :(得分:0)

检查一下:

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



        }
    }

现在可以随时随地检索国家/地区代码:

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

答案 3 :(得分:0)

我使用了以下链接How to create a LongListSelector control programmatically而不是创建一个单独的文件作为CustomMessageBox,我以编程方式创建了自己的xaml文件并在CustomMessageBox中调用它