将字符串传递给用户控件

我这几天正在接近Metro App世界,请保持温柔。 这是问题所在:

页面从另一页面接收字符串

protected override void OnNavigatedTo(NavigationEventArgs e) { Title.Text = e.Parameter.ToString(); } 

我需要将此字符串传递给接收页面的用户控件。

如何将参数从页面传递到另一个页面的UserControl?

像这样:

将属性添加到用户控件:

 public string MyText { get; set; } 

为您的用户控制一个名称。

  

然后使用您的NavigatedTo方法:

 protected override void OnNavigatedTo(NavigationEventArgs e) { var _TextParam = e.Parameter.ToString(); this.MyTopBarControl.MyText = _TextParam; } 

这将为您的用户控件提供所需的function。

您还可以通过将参数设置为页面的某个公共属性来绑定它。 如果您尝试这种方法,请记住将User Control的属性设置为Dependency属性而不是CLR属性。 如果你想要更好的解释,我写了一篇关于绑定的文章http://blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html

祝你好运!

假设usercontrol是导航页面的一部分,则必须在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. } }