0

今日はMetro Appの世界に近づいてきました、お手柔らかにお願いします。問題は次のとおりです。

ページが別のページから文字列を受け取る

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

この文字列を受信ページのユーザー コントロールに渡す必要があります。

ページから別のページの UserControl にパラメーターを渡すにはどうすればよいですか?

4

2 に答える 2

3

このような:

ユーザー コントロールにプロパティを追加します。

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

頑張ってください!

于 2013-01-11T06:41:15.497 に答える
1

ユーザーコントロールがナビゲートされたページの一部であると仮定すると、 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.
     }
   }
于 2013-01-08T17:18:06.767 に答える