私はWPFとデータバインディングが初めてです。私はリスト(Of Names)とエキスパンダのコンテンツをリスト(Of Services)にバインドする必要があります。私はリストを持っているApplication.vb私は私のメインクラスでwpfリストボックスとリスト項目のネストされたデータバインド
-------------
class Person
name as string
List servies as List (Of Services)
end class
--------------
class Service
name as string
end class
----------------
を持っている(など、どのように、どこstaticResourceを使用するパス)データバインディングにMSのチュートリアルを読んだ後
さらに混乱していますPersonオブジェクトの数
p1 as List(of Person)
すべてをダミー値に初期化します。 Application.xamlで 、私は彼らのサービスに人物の名前と内側リストボックス項目にヘッダーテキストブロックをバインドするにはどうすればよい
<Expander Name="listBox4" VerticalAlignment="Top"
HorizontalAlignment="Left" Header=" {Binding}" Content="{Binding}" >
<Expander.HeaderTemplate >
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</Expander.HeaderTemplate>
<Expander.ContentTemplate>
<DataTemplate >
<ListBoxItem Content="{Binding}"/>
</DataTemplate>
</Expander.ContentTemplate>
</Expander >
がありますか?
私のApplication.vb内の変数を参照することはできません。ここではそれらを と呼びます。または、XAMLで{バインディング}のみを使用してプログラムでこれを行う方法がありますか? – heyNow
私はあなたが何を意味しているか分かりません。 'ItemsControl'が保持しているコンテナは、その' DataContext'をあなたのリストに設定する必要があります。例えば、MainWindowのロードされたイベントに 'Me.MainWindow.DataContext = p1'を入れることができます。 DataContextが設定されると、そのDataContextの任意のプロパティにアクセスできます。DataContextがPersonオブジェクトの場合、 '{Binding Name}'または '{Binding Name}'を使用して 'Person.Services'を使用して' Person.Name'にバインドできます。バインディングサービス} ' – Rachel
ねえ、ありがとう!私はちょうどDataContextが何であるかの手を得ることです。私はあなたが言ったことをして、toStringメソッドを覆し、それは働いた!追加の質問、私はすべてのものをに入れました。このグリッドに複数のデータコンテキストを持たせることはできますか? –
heyNow