1

これは、WPF の C# にあります。

次のようにスタック パネルに項目を追加できることはわかっています。myStackPanel.Children.Add(new Button()); または、次のように ListBoxに項目を追加myListBox.Items.Add(new Button()); することもできます。

しかし、コードビハインドでスタックレイアウトにあるコントロールを選択するにはどうすればよいですか。たとえば、次のような方法はありmyStackPanel.Childern.CONTROL_AT_INDEX[n]ますか? そして、ラベルの場合はラベルの内容を、ボタンの場合はイベントハンドラーを変更するように、さらに編集するにはどうすればよいですか?

また、ListBoxのソリューションもお願いします。それらが中に入ったら、それらのコントロールにアクセスする方法がわかりません。

4

3 に答える 3

4

そのコントロールに割り当ててx:Name、コード ビハインドで使用します。

これは、 TemplatesおよびStylesに存在するコントロールには当然有効ではありません。

于 2012-07-04T11:26:27.387 に答える
2

Tigran が既に投稿したように、XAML でコントロールに属性を割り当てることができます。

<ListBox x:Name="myListBox"
         // more properties here...
/>

次に、コード ビハインドで行をコンパイルできるようになります。

myListBox.Items.Add(new Button());

ただし、代わりにMVVMアプローチを使用して分離コード ファイルを削除することを強くお勧めします。これにより、UI からのビジネス ロジックの結合が減少します。MVVM パターンを使用すると、多くの WPF 機能を非常に簡単に使用できるようになるため、Microsoft は WPF を操作する方法として推奨しています。

チュートリアルの優れたリソースは、この SO スレッドにあります。たとえば、MVVM: Tutorial from start to finish?

于 2012-07-04T11:36:05.183 に答える
1

これが私の解決策です

var child = (from c in theCanvas.Children
         where "someId".Equals(c.Tag)
         select c).First();
于 2012-07-04T11:52:21.050 に答える