2011-09-16 2 views
1

私はObservable Dictionary of Type ObservableDictionary<int, Person>にバインドしていますが(この場合はObservableであるとは限りません)、問題なくこのバインドを行うことができます:リストボックスを辞書の基になる値にバインドする

<ListBox x:Name="myListBox" ItemsSource="{Binding MyDictionary}"> 

しかし、私のリストボックスのテンプレートでは、基本的なオブジェクトにアクセスするために、すべてに値をプレフィックスする必要があります。次のように:

<TextBlock x:Name="idValue" Text="{Binding Value.ID}" Grid.Column="2"/> 

これはうまくいくようですが、Valueプレフィックスが不要になるようにバインディングを変更することができたらどうですか?私はデータテンプレートを使用していた場合、それはタイプを期待あれば、それは私に良く感じるだろう「人」

答えて

1

項目ソースとしてDictionary.Valuesを使用してみてください:

<ListBox x:Name="myListBox" ItemsSource="{Binding MyDictionary.Values}"> 
+0

ポイントに、作業を行うこと。リストボックスのリフレッシュは、これを使用すると停止します。このマイグレーションは、私が使用しているディクショナリの特定の実装と関係がありますが、それ以上のことはありますが、私は完全にはわかりません。 – Firedragon

+1

ObservableDictionary.Valuesによって返されたコレクションは、観察可能でなければなりません。 – Guillaume

+0

はDr WPFの実装を見ており、コメントを読むことは値を無効にすることは問題があることを意味しています。私はXAMlに何らかの理由でバインディングが「バリュー」に反していると言っていたが、私がやりたいことの限界にたどり着いていると思った – Firedragon

関連する問題