我希望做一些非常简单的事情(或者我认为简单的事情)。
基本上,我在XAML / C#UWP应用程序中设置了两个页面,第一个有一系列文本框和下拉菜单来选择选项(名称,状态等)。
在底部有一个按钮可以转到下一页。
在下一页上,我希望能够显示用户输入的数据。
我正在试图找出最好的方法,但经过几个小时的搜索,我似乎无法弄清楚如何在页面之间传递多个值。我想我想创建一个存储所有这些信息的类文件,但是我不确定如何在第一页的C#代码中设置值并在第二页上获取信息。
更新:
所以使用下面的答案,我已经到了这里:
在主页上
public sealed partial class MainPage : Page
{
public static MainPage Current;
public static string PageOneSelection
{
get; set;
}
public void changeToNextPage()
{
PageToLoad.Navigate(typeof(TwoPlayerGame));
}
public MainPage()
{
this.InitializeComponent();
Current = this;
PageToLoad.Navigate(typeof(Selection));
}
}
}
在选择页面上:
public sealed partial class Selection : Page
{
new string Name;
public Selection()
{
this.InitializeComponent();
}
private void PlayButton(object sender, TappedRoutedEventArgs e)
{
MainPage.Current.PageOneSelection = PlayerOneName.Text;
MainPage.Current.changeToNextPage();
}
}
}
答案 0 :(得分:0)
你应该有一个MainPage,它可以在Frames中保存你的所有页面。
<Page x:Name="Main">
<Frame x:Name="PageToLoad">
</Page>
在MainPage上你有一个全局,它包含“this”和globals来存储各个页面的选择值。
public static MainPage Current;
public static string PageOneSelection;
获取/存储您的选择的功能:
public string getPageOneSelection()
{
return PageOneSelection;
}
public void setPageOneSelection(string whatToSetItTo)
{
PageOneSelection=whatToSetItTo;
}
初始化
// This is a static public property that allows downstream pages to get a handle to the MainPage instance
// in order to call methods that are in this class.
Current = this;
在MainPage的初始化时,您应该加载第一页:
PageToLoad.Navigate(/*Your First Page*/);
现在无论何时进行选择,您都可以来回调用MainPage来更改选择值
//On Page 1
MainPage.Current.setPageOneSelection(theSelectedItem);
//On Page 2
itemFromPage1=MainPage.Current.getPageOneSelection();
更新:您的代码看起来不错。所以你说你有一个文本框,你想要的信息。你可以这样做:
MainPage.Current.setPageOneSelection(textbox.Text);
在你导航到下一帧之前,我会把它放进去。
如果您有第二个选择(即您的下拉列表),请在您的MainPage上创建另一个全局并执行相同的操作。
此外,如果您一次可以发送多个字符串,请将参数添加到您的set函数中:
public void setAllPageOneSelections(string param1,string param2 /.../) { PageOneSelection =参数1; PageOneSelection2 = param2的; } 在你的主要你应该有一个页面切换功能。我用:
public void changeToNextPage()
{
PageToLoad.Navigate(/*Page 2 or next page or something */);
}
然后您可以使用播放按钮
MainPage.Current.changeToNextPage();