powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите по биндингу в ComboBox
14 сообщений из 14, страница 1 из 1
Подскажите по биндингу в ComboBox
    #39194666
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взял код с примера
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public void fillexcombo()
       {
           if (con.State == ConnectionState.Closed)
           {
               con.Open();
           }
           //SqlConnection con = Connection1.getopenedconnection();
           SqlCommand cmd = new SqlCommand("SELECT EXNAME,EXCODE FROM EXMAST where compcode='" + Compcls.Gcomp_cd + "'", con);
           SqlDataReader sdr = cmd.ExecuteReader();
           DataTable dt = new DataTable();
           dt.Clear();
           dt.Load(sdr);
           comboBox1.DataSource = dt;
           comboBox1.DisplayMember = dt.Columns[0].ColumnName;
           comboBox1.ValueMember = dt.Columns[1].ColumnName;
           con.Close();
       }


Данный код заполняет визуализируемый список ComboBox данными. Но часто требуется выбирать пустое значение. Как добавить?
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194708
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: sql
1.
2.
3.
SELECT '' as EXNAME, 0 as EXCODE
union all
SELECT EXNAME,EXCODE FROM EXMAST where compcode=
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194780
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
Код: sql
1.
2.
3.
SELECT '' as EXNAME, 0 as EXCODE
union all
SELECT EXNAME,EXCODE FROM EXMAST where compcode=


Код был просто для пример. Допустим мы имеем readonly Dictionary, его и биндим, как в таком случае?
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194789
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxix, сделать кастомный контрол... с чекбоксом... ?
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194884
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saxixCat2
Код: sql
1.
2.
3.
SELECT '' as EXNAME, 0 as EXCODE
union all
SELECT EXNAME,EXCODE FROM EXMAST where compcode=



Код был просто для пример. Допустим мы имеем readonly Dictionary, его и биндим, как в таком случае?
Покажите мне кусок кода, в котором у комбобокса в качестве DataSource используется Dictonary и я напишу как это сделать.
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194965
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
busersaxix, сделать кастомный контрол... с чекбоксом... ?
Был такой вариант, но это лишний контрол на форме.
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39194966
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2saxixпропущено...

Код был просто для пример. Допустим мы имеем readonly Dictionary, его и биндим, как в таком случае?
Покажите мне кусок кода, в котором у комбобокса в качестве DataSource используется Dictonary и я напишу как это сделать.
Есть коллекция Ilist экземпляра класса с полями int id и string name. У комбобокса displaymember - name, valuemember - id. Среды под рукой нет
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195081
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saxix,

Так все же не "readonly Dictionary", а просто List?


saxixКод был просто для пример.
У меня тоже был только для пример. О том, что в начало списока надо добавлять "нулевой" элемент
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195133
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2saxix,

Так все же не "readonly Dictionary", а просто List?


saxixКод был просто для пример.
У меня тоже был только для пример. О том, что в начало списока надо добавлять "нулевой" элемент
Сорри, писал в блокноте
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class Container
{
   public int id {get;set;}
   public string name {get;set;}
   
   public Container (int id, string name)
   {
      this.id = id;
      this.name = name;
   }
}

...
List<Container> containers = new List<Container>();
containers.Add(new Container(1, "первый"));
containers.Add(new Container(2, "второй"));
containers.Add(new Container(3, "третий"));

BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = containers;
comboBox.DataSource = bindingSource;
comboBox.ValueMember = "id";
comboBox.DisplayMember = "name";
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195157
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну и кто же мешает Вам добавить первой строкой
saxix
Код: c#
1.
containers.Add(new Container(0, "_не определено"));



?

Даже с readonly Dictonary (который сам по себе не может быть DataSource ) можно выкрутиться

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
readonly  Dictionary<int, string> Dic = new Dictionary<int, string>()
        { {1, "A" }, {2, "B" }};
...
            var v = Dic.AsEnumerable().Select(d=> new { Key = 0, Val = "" })
            .Union( Dic.AsEnumerable().Select(d => new { Key = d.Key, Val = d.Value })).ToList();
            comboBox1.DataSource = v;
            comboBox1.DisplayMember = "Val";
            comboBox1.ValueMember = "Key";
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195166
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Ну и кто же мешает Вам добавить первой строкой
saxix
Код: c#
1.
containers.Add(new Container(0, "_не определено"));



?

Даже с readonly Dictonary (который сам по себе не может быть DataSource ) можно выкрутиться

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
readonly  Dictionary<int, string> Dic = new Dictionary<int, string>()
        { {1, "A" }, {2, "B" }};
...
            var v = Dic.AsEnumerable().Select(d=> new { Key = 0, Val = "" })
            .Union( Dic.AsEnumerable().Select(d => new { Key = d.Key, Val = d.Value })).ToList();
            comboBox1.DataSource = v;
            comboBox1.DisplayMember = "Val";
            comboBox1.ValueMember = "Key";


Под readonly я подразумевал, что нельзя изменять коллекцию. Архитектура запрещает.
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195170
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saxixПод readonly я подразумевал, что нельзя изменять коллекцию
Всегда можно работать с ее копией
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195180
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2saxixПод readonly я подразумевал, что нельзя изменять коллекцию
Всегда можно работать с ее копией
Я вангую, что есть более корректный способ, который не знаю)
...
Рейтинг: 0 / 0
Подскажите по биндингу в ComboBox
    #39195460
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saxix,
Блажен кто верует. Тепло ему на свете
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите по биндингу в ComboBox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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