類似した質問は既に回答済みですhere。違いは私のページUserControl1-UserControl2のために次の構造があることです。c#XAML同じページの他のUserControlからUserControlにアクセスする
私は各項目がUserControl1に基づいているいくつかのListBoxItemsを持つListBoxを持っています。 UserControlも同じページに基づいていますが、そのインスタンスは1つだけです。
私は他のスレッドをリンクとして、私は次の操作を行うことはできません。
私はControl1のコードビハインドの上部にプロパティを導入しました:
public Control2 ctrl2 { get; set; }
そして、私はControl2のAを与えましたページのXAMLファイルに名前:私がやりたい
<local:Control2 Grid.Row="2" x:Name="NameOfControl2"></local:Control2>
次のステップは、単に制御1に設定されたプロパティにControl2ののインスタンスを渡すことです。そこで、制御1のインスタンスは、この時点では不明であるので、私は仕事をカント次の操作を行いたいページのコードビハインドでのOnLoadメソッドに:それやっと
Control1.ctrl2 = NameOfControl;
私はそれぞれから私のUserControl2をにアクセスすることができましたUserControl1のinsatanceが、どのように私はこれを行うのですか?アミンからCOMMENTに応じて
//
ありがとう:
が、これはページのXAMLです:
そして、コードビハインドに私が項目を埋めますwith:
StandardTweetBox.Items?.Add(MySpecialClass);
//this.DataContext = NameOfSendControl;
StandardTweetBox.DataContext = NameOfSendControl;
あなたはみましたがあります親または子のプロパティを介してナビゲートします。なぜそれらのコントロールにアクセスする必要がありますか? MVVMパターンを使用していますか?役に立つツールは、視覚的なツリーヘルパーになる可能性があります:https://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx –
私は試みたUserControl1のInit()で 'var obj = this.Parent; 'しかし、返される値はnullです。だから、私は親に行く機会がないと思う。 はい、MVVMパターンを使用しています。 – Ulpin
MVVMを使用している場合。なぜあなたはusercontrolsの間に1つのViewModelを共有しないのですか? – Amine