这几天我正在接近Metro App世界,请温柔。这是问题所在:
一个页面从另一个页面接收一个字符串
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Title.Text = e.Parameter.ToString();
}
我需要将此字符串传递给接收页面的用户控件。
如何将一个页面的参数传递给另一个页面的 UserControl?
这几天我正在接近Metro App世界,请温柔。这是问题所在:
一个页面从另一个页面接收一个字符串
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Title.Text = e.Parameter.ToString();
}
我需要将此字符串传递给接收页面的用户控件。
如何将一个页面的参数传递给另一个页面的 UserControl?
像这样:
向您的用户控件添加一个属性:
public string MyText { get; set; }
为您的用户控件命名。
<src:TopBarControl x:Name="MyTopBarControl" />
然后使用您的 NavigatedTo 方法:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var _TextParam = e.Parameter.ToString();
this.MyTopBarControl.MyText = _TextParam;
}
这将为您的用户控件提供所需的内容。
您还可以通过将参数设置为页面的某些公共属性来绑定它。如果您尝试这种方法,请记住将用户控件的属性设置为依赖属性而不是 CLR 属性。如果您想要更好的解释,我写了一篇关于绑定的文章http://blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html
祝你好运!
假设用户控件是导航页面的一部分,您必须在 OnNavigatedTo
覆盖时设置用户控件的属性。
例子:
class MyUserControl : UserControl
{
public object Parameter {get;set;}
}
假设这个用户控件是MyPage
class MyPage : Page
{
private MyUserControl myUserControl; // It is only for illustrations, Otherwise it goes to .designer.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Title.Text = e.Parameter.ToString();
myUserControl.Parameter = e.Parameter; // This is how to set the parameter in usercontrol.
}
}