Windows 8 アプリの別のページにデータを渡すことによって使用される方法でデータを返すことができないことがわかりました。渡した方法でデータを返すことはできません。つまり、 this.Frame.Navigate(typeof(MainPage), passData); 解決策として、 'Completed'
イベントを作成し、それを MainPage C# コード ビハインドから呼び出しました。
MainPage.xaml.cs :
protected override void OnNavigatedFrom(NavigationEventArgs args)
{
if (args.SourcePageType.Equals(typeof(ChildPage)))
(args.Content as ChildPage).Completed += OnChildPageCompleted;
base.OnNavigatedFrom(args);
}
void OnChildPageCompleted(object sender, ReturnData args)
{
// Code to run if returned back to MainPage from ChildPage
this.myNewString = returnData.myString;
(sender as ChildPage).Completed -= OnChildPageCompleted;
}
ReturnData.cs :
namespace MyTestApp
{
class ReturnData
{
public String myString { set; get; }
}
}
ChildPage.xaml.cs :
public event EventHandler<ReturnData> Completed;
ChildPage.xaml.cs :
protected override void OnNavigatedFrom(NavigationEventArgs args)
{
if (Completed != null)
{
// Create ReturnData object
ReturnData returnData = new ReturnData();
returnData.myString = newStringChanged;
// Fire Completed event
Completed(this, returnData);
}
base.OnNavigatedFrom(args);
}