【发布时间】:2016-11-13 08:29:57
【问题描述】:
首先我将按钮的内容从 MainPage 传递到 Menu2:
private void Button2Click(object sender, RoutedEventArgs args)
{
// Create PassData object
PassData passData = new PassData();
// Set the InitializeData property from the button's content
passData.Data = firstElement.Content;
// Pass that object to Navigate
this.Frame.Navigate(typeof(Menu2), passData);
}
然后我在 Menu2 页面中检索数据:
// pulling data from first page selection
protected override void OnNavigatedTo(NavigationEventArgs args)
{
// Get the object passed as the second argument to Navigate
PassData passData = args.Parameter as PassData;
// Use that to initilize the button
firstElement.Content = passData.Data;
base.OnNavigatedTo(args);
}
此时按钮的内容通过没有问题。
然后我想再次将该数据传递回 MainPage:
菜单2代码:
private void Button1Click(object sender, RoutedEventArgs args)
{
// Create PassData object
PassData passData = new PassData();
// Set the InitializeData property from the button's content
passData.Data = firstElement.Content;
// Pass that object to Navigate
this.Frame.Navigate(typeof(MainPage), passData);
}
我尝试在 MainPage 中检索数据:
// pulling data from Menu2's button
protected override void OnNavigatedTo(NavigationEventArgs args)
{
// Get the object passed as the second argument to Navigate
PassData passData = args.Parameter as PassData;
// Use that to initilize the button
firstElement.Content = passData.Data;
base.OnNavigatedTo(args);
}
此时我在 MainPage 的行上收到错误:
firstElement.Content = passData.Data;
错误提示:
Null Reference Exception, Object reference not set to an instance of an object
我做错了什么?
【问题讨论】:
-
您的 firstElement 或 passData 对象为空。
-
但是怎么会呢?既然已经被主页传递了,不应该分配数据吗?
-
表示 passData 为空。但它应该包含 firstElement.Content 中的内容,对吧?
标签: c# xaml parameter-passing