Как получить данные столбца из модели объекта? - PullRequest
0 голосов
/ 25 августа 2011

Я пытаюсь получить один столбец данных и поместить его в комбинированный список, но не могу заставить его работать. Кто-нибудь может мне помочь с этим, пожалуйста?

Код:

test_DataEntities db = new test_DataEntities();
DataGrid test = new DataGrid();
test.ItemsSource = db.testTbls;
cmbWorkOrder.ItemsSource = test.Columns[2];

1 Ответ

1 голос
/ 25 августа 2011

Вы можете попробовать:

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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...