在页之间传递和返回数据 C# Xaml

本文关键字:返回 数据 Xaml 之间 | 更新日期: 2023-09-27 18:17:21

我正在遵循Petzold的教程。但是,我无法让我的算法正常工作。

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

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

然后,在 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是我的按钮的别名。

当我运行代码时,在主页上我单击列表框项,它被分配给firstElement.Content,然后我导航到Menu2页面,我得到的只是按钮的内容:Windows.UI.Xaml.Navigation.NavigationEventArgs

-----溶液-----

我已经通过以下方式解决了问题:

在 Menu2.xaml 中.cs而不是我放firstElement.Content = args;

firstElement.Content = passData.Data;
            base.OnNavigatedTo(args);

在页之间传递和返回数据 C# Xaml

在 Menu2.xaml 中.cs而不是我放firstElement.Content = args;

firstElement.Content = passData.Data;
            base.OnNavigatedTo(args);

这解决了问题,并且数据在两个页面之间传递。