ここでは、私が持っているものです。WPFコンボボックスのデータバインディング
- のみidと名前の列で、この
Category
テーブルを保持しているSQL CEデータベース、。 - sqlmetalで生成されたdbml
- linqを公開するシングルトン(静的クラス)
DataContext
。コードビハインドファイルに 、私のような性質を持って、次のとおりです。
private System.Data.Linq.Table<Categories> Categories { get { return LibraryDataStore.Instance.Categories; } }
を私は単にComboBox
にカテゴリをバインドしたいです。 コードの後ろにItemsSource
を設定したくない場合は、このXAMLのみを実行したいのですが、どうすればよいですか? ほとんどの例が見つかりましたXAMLで右がデータを定義する、またはプログラム的ItemsSource
を設定し、それは私が欲しいものではありませんた。サイドノートとして
なぜこの、例えば、動作しない?
<ComboBox Name="cmbCategory"
Margin="3"
MinWidth="200"
ItemsSource="{Binding Path=Categories}"
DisplayMemberPath="Name"/>
、私は私はwpfのデータバインディングモデルが非常に厚く、物事を行うために多くの方法があるので、非常に難しいと感じています。
その後編集:それはXAMLで動作しない理由を
var cats = from c in LibraryDataStore.Instance.Categories
select c;
cmbCategory.ItemsSource = cats;
それでも、私はそれを把握することはできません。 は、私は私がこのようなItemsSource
を設定した場合、それが動作することがわかりました。
それは動作します:)ありがとう まだ私は "これ"にDataContextを設定し、またLIbraryDataStore.Instance.Categoriesでラップされたプロパティを公開するときにそれが異なっているのか分かりません。しかし、それは今は重要ではありません。なぜなら、そのアプローチはとにかく馬鹿げたものだったからです。 – Teodor
ところで、それはBea Stollnitzの素晴らしいブログ投稿です。 – Teodor