0

こんにちは、ご協力ありがとうございます。

stackpanel という名前のスタックパネルを持つウィンドウがあり、xaml でいくつかのカスタム コントロールを追加しました。

現在、私のプログラムは、スタックパネル内にいくつかのユーザー コントロール (ボタン付き) を動的に作成しています。ユーザー コントロール内のボタンをクリックして、スタック パネルに別のコントロールを動的に追加できるようにしたいと考えています。

別のクラスにあるため、これを機能させることができないようです。別のコントロールからスタックパネルにコントロールを追加するにはどうすればよいですか? ダイレクトキャストの使い方もわかりませんでした。

ありがとうございました!

4

2 に答える 2

1

stackpanel.Children.Add(新しいコントロール());

于 2012-08-14T12:13:20.607 に答える
0

スタックパネルは、コントロールを作成するためのメソッド (この例ではmyCreateMethodと呼びましょう) を提供する必要があり、そのメソッドはユーザー コントロールからアクセスできる必要があります。ユーザーコントロールを作成するときは、スタックパネルにハンドルを渡します。

MyUserControl mycontrol = new MyUserControl(this);

ユーザー コントロール内に参照を保存します。

Stackpanel parent;

public MyUserControl(Stackpanel parent){
  this.parent = parent;
}

次に、メソッドを呼び出して、次のようにコントロールを作成できます。

parent.myCreateMethod();

この例をニーズに合わせて調整するのに十分な洞察が得られることを願っています。

編集:明らかに、新しいコントロールに関する詳細をパラメーターとして myCreateMethod() に渡すことができます。または、ユーザー コントロールで新しいコントロールを作成し、それを stackpanel に渡して myCreateMethod() で「のみ」表示します。

于 2012-08-14T01:59:08.580 に答える