У меня есть один combobox
, который я databinding
для DataTable
, который извлекает данные из базы данных следующим образом:
SqlDataAdapter adp = new SqlDataAdapter
(@"SELECT [CategoryID],[CategoryName]FROM [Northwind].[dbo].[Categories]",
@"Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=AKSHAY-PC\SQLEXPRESS");
DataTable tbl = new DataTable();
adp.Fill(tbl);
cmbCities.ItemsSource = ((IListSource)tbl).GetList();
cmbCities.DisplayMemberPath = "[CategoryName]";
cmbCities.SelectedValuePath = "[CategoryID]";
Когда данные таблицы изменяются (добавляются / удаляются строки), combobox
не обновляется, поскольку IList
не имеет встроенного уведомления об изменении.
Есть ли способ сделать это возможным?
Если это невозможно, есть ли способ «обновить» привязку данных, чтобы datatable
снова получил данные. В этом случае я выполню приведенный выше код при инициализации окна, а затем обновлю его снова, не выполняя тот же код снова. Что-то вроде cmbCities.Data.Refresh()
.