Вы можете попробовать:
cmbWorkOrder.ItemsSource = (test.ItemsSource as IEnumerable<testTblEntity>)
.Select(t => t.PropertyToDisplayInComboBox);
Возвращает IEnumerable<T>
, где T
- это тип свойства, которое вы хотите отобразить в поле со списком (например, string
). Я ожидаю, что привязка к test.ItemsSource
выполнит запрос для извлечения сущностей из БД в память, а затем привязка к cmbWorkOrder.ItemsSource
только считывает свои данные из коллекции в памяти и больше не попадает в базу данных. Конечно, я не.
Редактировать
Возможно, это немного чище:
test_DataEntities db = new test_DataEntities();
DataGrid test = new DataGrid();
List<testTblEntity> list = db.testTbls.ToList(); // executes the query
test.ItemsSource = list;
cmbWorkOrder.ItemsSource = list.Select(t => t.PropertyToDisplayInComboBox);
Теперь вы можете контролировать выполнение запроса. В первом примере это будет зависеть от механизма привязки, когда он будет связывать сетку, и когда поле со списком будет соответствовать вашим данным, что может зависеть от порядка элементов управления в XAML (при условии, что это WPF).