2016-11-11 100 views
0

我遵循Petzold的教程。但是,我无法让我的算法正常工作。在页面之间传递和返回数据C#Xaml

我创建两个页面之间传递数据的目的的一类:

public class PassData 
{ 
    public object Data { set; get; } 
} 

然后,我包括我的PassData对象作为第二个参数导航: (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); 

    } 

然后,内菜单2我尝试初始化按钮与传递对象名称:

// 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); 

回答

0

----- -----解决方案

我已经做如下解决问题而不是firstElement.Content = args;

在Menu2.xaml.cs我把

firstElement.Content = passData.Data; 

      base.OnNavigatedTo(args); 

这解决日问题和数据正在两页之间传递。