Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView в ComboBox / 9 сообщений из 9, страница 1 из 1
28.04.2014, 16:43
    #38627967
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
Добрый день, знатоки! Помогите!
Завис на глупой проблеме. У меня есть заполненный DataGridView. И вот все значения определённой колонки мне надо запихать в коллекцию ComboBox в качестве DisplayValue, установив при этом индекс строки грида в качестве ValueMember.
...
Рейтинг: 0 / 0
28.04.2014, 17:30
    #38628038
igr_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
Алексей Ку.Добрый день, знатоки! Помогите!
Завис на глупой проблеме. У меня есть заполненный DataGridView. И вот все значения определённой колонки мне надо запихать в коллекцию ComboBox в качестве DisplayValue, установив при этом индекс строки грида в качестве ValueMember.
Индекс строки грида не может быть ключевым полем. Это бессмыслица.
...
Рейтинг: 0 / 0
28.04.2014, 17:49
    #38628065
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
igr_ok,
Хорошо. Предположим в качестве ключа используется вторая колонка из грида.
...
Рейтинг: 0 / 0
28.04.2014, 19:01
    #38628117
igr_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
Алексей Ку.igr_ok,
Хорошо. Предположим в качестве ключа используется вторая колонка из грида.

Получаете источник данных вашего DataGridView и привязываете его к ComboBox. Например, так
DataTable dt=(DataTable)DataGridView.DataSource;
ComboBox.DataSource=dt;
и т.д.
...
Рейтинг: 0 / 0
29.04.2014, 10:44
    #38628542
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
igr_ok,

При попытке выполнить такой код получаю:

Не удалось привести тип объекта "System.Data.Linq.DataQuery`1[<>f__AnonymousType0`5[System.Int32,System.String,System.String,System.String,System.Nullable`1[System.Boolean]]]" к типу "System.Data.DataTable".
...
Рейтинг: 0 / 0
29.04.2014, 12:37
    #38628693
igr_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
Алексей Ку.igr_ok,

При попытке выполнить такой код получаю:

Не удалось привести тип объекта "System.Data.Linq.DataQuery`1[<>f__AnonymousType0`5[System.Int32,System.String,System.String,System.String,System.Nullable`1[System.Boolean]]]" к типу "System.Data.DataTable".Значит, вместо DataTable используйте тот тип, который у вас.
...
Рейтинг: 0 / 0
29.04.2014, 15:24
    #38629028
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
igr_ok,
А какой у меня тип данных? У меня есть только комбобокс и DataContext запросом из которого заполнен DataGridView.
...
Рейтинг: 0 / 0
30.04.2014, 13:49
    #38630108
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
Алексей Ку.igr_ok,
А какой у меня тип данных? У меня есть только комбобокс и DataContext запросом из которого заполнен DataGridView.Ну, тогда код "заполнения" DataGridView данными из DataContext в студию...
...
Рейтинг: 0 / 0
01.05.2014, 10:59
    #38630821
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView в ComboBox
igr_okАлексей Ку.igr_ok,
Хорошо. Предположим в качестве ключа используется вторая колонка из грида.

Получаете источник данных вашего DataGridView и привязываете его к ComboBox. Например, так
DataTable dt=(DataTable)DataGridView.DataSource;
ComboBox.DataSource=dt;
и т.д.
Алексей Ку.igr_ok,

При попытке выполнить такой код получаю:

Не удалось привести тип объекта "System.Data.Linq.DataQuery`1[<>f__AnonymousType0`5[System.Int32,System.String,System.String,System.String,System.Nullable`1[System.Boolean]]]" к типу "System.Data.DataTable".

Тогда, в лоб, так

Код: c#
1.
2.
3.
сomboBox.DataSource=dataGridView.DataSource;
comboBox.DisplayMember = ...;
comboBox.ValueMember = ...;



Но при этом при переходе в гриде в комбобоксе будет выбираться текущий элемент и наоборот.

Если цель в этом, то можно так и оставить.

Если они должны быть независимы, то нужно создать индивидуальный источник

Код: c#
1.
2.
3.
comboBox.DataSource = new BindingSource(dataGridView.DataSource, null);
comboBox.DisplayMember = ...;
comboBox.ValueMember = ...;
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView в ComboBox / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]