Xaml 如何在uwp中的其他页面上单击按钮时在文本框中设置值?

Xaml 如何在uwp中的其他页面上单击按钮时在文本框中设置值?,xaml,c#-4.0,win-universal-app,uwp,uwp-xaml,Xaml,C# 4.0,Win Universal App,Uwp,Uwp Xaml,在我的页面右侧有一些文本框(第1页),在左侧文本框上有一些像1,2,3(第2页)这样的按钮,使第2页的焦点出现在框架中。 现在我的问题是,如何在uwp第2页的按钮点击第1页的文本框中设置值。您可以使用从第2页获取第1页的文本框 例如: 主页有两个框架: 代码隐藏: public主页() { this.InitializeComponent(); 这个.frame1.Navigate(typeof(MenuPage)); 这个.frame2.导航(typeof(Page1)); } Menu

在我的页面右侧有一些文本框(第1页),在左侧文本框上有一些像1,2,3(第2页)这样的按钮,使第2页的焦点出现在框架中。 现在我的问题是,如何在uwp第2页的按钮点击第1页的文本框中设置值。

您可以使用从第2页获取第1页的
文本框

例如: 主页有两个
框架


代码隐藏:

public主页()
{
this.InitializeComponent();
这个.frame1.Navigate(typeof(MenuPage));
这个.frame2.导航(typeof(Page1));
}
MenuPage
在我的测试中是一个空白页

第1页:


代码隐藏:

publicpage1()
{
this.InitializeComponent();
this.Loaded+=Page1_Loaded;
}
专用框架;
已加载私有无效页面1_(对象发送方,路由目标)
{
Frame rootFrame=Window.Current.Content作为Frame;
页面主页=根框架。内容作为主页;
frame=mainPage.FindName(“frame1”)作为frame;
}
私有void tb_GotFocus(对象发送方,路由目标)
{
框架.导航(类型(第2页));
}
专用空心网格(对象发送器,TappedRoutedEventArgs e)
{
if(框架CanGoBack)
frame.GoBack();
}
第2页:


代码隐藏:

publicpage2()
{
this.InitializeComponent();
此.Loaded+=Page2_U已加载;
}
专用文本框tb1;
专用文本框tb2;
专用文本框tb3;
已加载私有无效页面2_(对象发送方,路由目标)
{
Frame rootFrame=Window.Current.Content作为Frame;
页面主页=根框架。内容作为主页;
Frame Frame=mainPage.FindName(“frame2”)作为Frame;
第page1页=框架。内容为第1页;
tb1=第1页。FindName(“tb1”)作为文本框;
tb2=第1页。FindName(“tb2”)作为文本框;
tb3=第1页。FindName(“tb3”)作为文本框;
}
私有无效按钮\u单击\u 1(对象发送者,路由目标)
{
tb1.Text=“单击按钮1!”;
}
私有无效按钮\u单击\u 2(对象发送方,路由目标)
{
tb2.Text=“按钮2已单击!”;
}
私有无效按钮\u单击\u 3(对象发送者,路由目标)
{
tb3.Text=“单击按钮3!”;
}
渲染图像:

更新: 主页调用第1页:


代码隐藏:

private void按钮\u单击(对象发送者,路由目标)
{
此.Frame.Navigate(typeof(Page1));
}
第1页有一个框架并调用第2页:


代码隐藏:

private void tb_GotFocus(对象发送方、路由目标方)
{
myframe.Navigate(typeof(第2页));
}
第2页:


代码隐藏有点不同:

publicpage2()
{
this.InitializeComponent();
this.Loaded+=Page2_Loaded;
}
专用文本框tb1;
专用文本框tb2;
专用文本框tb3;
已加载私有无效页面2_(对象发送方,路由目标)
{
Frame rootFrame=Window.Current.Content作为Frame;

第page1页=根框架。内容为第1页; tb1=第1页。FindName(“tb1”)作为文本框; tb2=第1页。FindName(“tb2”)作为文本框; tb3=第1页。FindName(“tb3”)作为文本框; } 私有无效按钮\u单击\u 1(对象发送者,路由目标) { tb1.Text=“单击按钮1!”; } 私有无效按钮\u单击\u 2(对象发送方,路由目标) { tb2.Text=“按钮2已单击!”; } 私有无效按钮\u单击\u 3(对象发送者,路由目标) { tb3.Text=“单击按钮3!”; }
您可以使用从第2页获取第1页中的
文本框

例如: 主页有两个
框架


代码隐藏:

public主页()
{
this.InitializeComponent();
这个.frame1.Navigate(typeof(MenuPage));
这个.frame2.导航(typeof(Page1));
}
MenuPage
在我的测试中是一个空白页

第1页:


代码隐藏:

publicpage1()
{
this.InitializeComponent();
this.Loaded+=Page1_Loaded;
}
专用框架;
已加载私有无效页面1_(对象发送方,路由目标)
{
Frame rootFrame=Window.Current.Content作为Frame;
页面主页=根框架。内容作为主页;
frame=mainPage.FindName(“frame1”)作为frame;
}
私有void tb_GotFocus(对象发送方,路由目标)
{
框架.导航(类型(第2页));
}
专用空心网格(对象发送器,TappedRoutedEventArgs e)
{
if(框架CanGoBack)
frame.GoBack();
}
第2页:


代码隐藏:

publicpage2()
{
this.InitializeComponent();
this.Loaded+=Page2_Loaded;
}
专用文本框tb1;
专用文本框tb2;
专用文本框tb3;
已加载私有无效页面2_(对象发送方,路由目标)
{
Frame rootFrame=Window.Current.Content作为Frame;
页面主页=根框架。内容作为主页;
Frame Frame=mainPage.FindName(“frame2”)作为Frame;
第page1页=框架。内容为第1页;
tb1=第1页。FindName(“tb1”)作为文本框;
tb2=第1页。FindName(“tb2”)作为文本框;
tb3=第1页。FindName(“tb3”)作为文本框;
}
私有无效按钮\u单击\u 1(对象发送者,路由目标)
{
tb1.Text=“单击按钮1!”;
}
私有无效按钮\u单击\u 2(对象发送方,路由目标)
{
tb2.Text=“按钮2已单击!”;
}
私有无效按钮\u单击\u 3(对象发送者,路由目标)
{
tb3.Text=“单击按钮3!”;
}
渲染图像:

更新: 主页调用第1页:


代码隐藏:

private void按钮\u单击
ShellPage currentPage = Window.Current.Content as ShellPage;
TextBlock tb1 = currentPage.FindName("InternetConnection") as TextBlock;
tb1.Text = InternetConnectionText;
tb1.Foreground = InternetConnectionForeground;