【发布时间】:2016-11-11 10:19:47
【问题描述】:
我正在关注 Petzold 的教程。但是,我无法让我的算法正常工作。
我创建一个类用于在两个页面之间传递数据:
public class PassData
{
public object Data { set; get; }
}
然后,我将我的 PassData 对象作为 Navigate 的第二个参数包含在内: (MainPage.xaml.cs)
private void Button2Click(object sender, RoutedEventArgs args)
{
// Create PassData object
PassData passData = new PassData();
// Set the InitializeData property from the ListBox
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 = args;
}
firstElement 是我按钮的别名。
当我运行代码时,我在 MainPage 上单击 ListBox 项,将其分配给 firstElement.Content,然后导航到 Menu2 页面,代替按钮内容的所有内容是:Windows.UI.Xaml.Navigation.NavigationEventArgs。
----- 解决方案-----
我已经通过以下方式解决了这个问题:
在 Menu2.xaml.cs 中而不是 firstElement.Content = args; 我放了
firstElement.Content = passData.Data;
base.OnNavigatedTo(args);
【问题讨论】:
标签: c# data-binding parameter-passing