Hier ist, was ich habe:WPF Combobox Datenbindung zu einer L2S Tabelle
- eine SQL CE-Datenbank, die in diese
Category
Tabelle, mit der ID und dem Namen Spalten nur. - dbml generiert mit sqlmetal
- Singleton (statische Klasse), die die linq
DataContext
exponiert. in der Code-Behind-Datei, habe ich eine Eigenschaft wie folgt:
private System.Data.Linq.Table<Categories> Categories { get { return LibraryDataStore.Instance.Categories; } }
möchte ich eine ComboBox
die Kategorien einfach zu binden. Ich kann nicht glauben, dass ich schon seit Stunden damit beschäftigt bin, ohne Ergebnis :( Ich möchte ItemsSource
nicht im Code hinter setzen, ich möchte das nur XAML tun, aber wie? Die meisten Beispiele, die ich gefunden habe in XAML wurden genau dort die Daten zu definieren, oder ItemsSource
programmatisch einstellen, aber das ist nicht das, was ich will.
Warum dies nicht, zum Beispiel?
<ComboBox Name="cmbCategory"
Margin="3"
MinWidth="200"
ItemsSource="{Binding Path=Categories}"
DisplayMemberPath="Name"/>
Als Randbemerkung arbeiten, i Ich möchte sagen, dass ich finde, dass das Datenbindungsmodell von wpf extrem schwierig zu lernen ist, da es so dick ist und es so viele Möglichkeiten gibt, Dinge zu tun.
Später bearbeiten: fand ich, dass es funktioniert, wenn ich die ItemsSource
wie folgt festgelegt:
var cats = from c in LibraryDataStore.Instance.Categories
select c;
cmbCategory.ItemsSource = cats;
noch, ich kann es nicht herausfinden, warum es nicht in XAML funktioniert.
es funktioniert :) danke Noch verstehe ich nicht, warum ist es anders, wenn ich den DataContext auf "this" setzen, und auch eine Eigenschaft, die über LIbraryDataStore.Instance.Categories gewickelt ist. Aber das ist jetzt egal, denn diese Herangehensweise war irgendwie albern. – Teodor
Übrigens, das ist ein toller Blogbeitrag von Bea Stollnitz. – Teodor