Ich habe diese Combo an eine Linq-Tabelle gebunden. Gibt es eine einfache Möglichkeit, die UI (Combo-Werte, die dem Benutzer angezeigt werden) zu aktualisieren, wenn ich einen neuen Datensatz in der Linq-Tabelle einfügen?
Im Grunde aus, was ich verstehe, sollte ich eine ObservableCollection verwendet haben, aber ich möchte nicht die Daten hin und her aus der Linq-Tabelle zu dieser Sammlung zu kopieren, ich möchte nur Daten in der Linq-Tabelle haben.
Ist das möglich?
EDIT
OK Hier ist, was ich getan habe (und es funktioniert immer noch nicht):
private ObservableCollection<Categories> m_Categories;
private ObservableCollection<Categories> Categories
{
get
{
return m_Categories;
}
}
in der XAML habe ich:
<ComboBox Name="cmbCategory"
ItemsSource="{Binding Categories}"
DisplayMemberPath="Name"
SelectedValuePath="Id"
/>
Also, ganz einfach.
//if i have a new category, i want to update the combo's content
if (frmEditCategory.ShowDialog() == true)
{
//get the new category and add it to the ObservableCollection
LibraryDataStore.Instance.Categories.ToList().ForEach(p =>
{
if (!m_Categories.Contains(p))
{
m_Categories.Add(p);
}
});
//update the target? is this correct?!
BindingExpression be = cmbCategory.GetBindingExpression(ComboBox.ItemsSourceProperty);
if (be != null)
be.UpdateTarget();
}
Mit dem Debugger geprüft, enthält m_Categories die neue Kategorie, aber sie wird nicht in der Combo angezeigt.
Kennen Sie auch eine gute Anleitung oder einen Blogbeitrag über Combo-Bindung?...
Ich danke Ihnen im Voraus