Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# и базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
sWINo_BACK_LAN
6 / 6 / 0
Регистрация: 30.03.2016
Сообщений: 42
#1

BindingSource.Current отстает от выбора ComboBox - C#

19.06.2017, 19:19. Просмотров 124. Ответов 0
Метки нет (Все метки)

Собственно говоря, при выборе значения из комбобокса cmbTso, выбирается запись из m_dtTso через m_tsoBinding.Current
И, текстовая метка lblTSOState на форме должна отображать новый выбранный элемент. Но... При выборе значения из списка, m_tsoBinding.Current все равно, указывает на старый элемент, который был выбран до этого. При повторном выборе из списка того же элемента в лабеле он уже начинает отображаться. Видимо, биндинг дергается и обновляет текущую позицию уже после события SelectedIndexChanged. Есть какие мысли?Заранее спасибо
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public Form1()
{
      InitializeComponent(); 
      this.cmbTSO.SelectedIndexChanged += new System.EventHandler(this.cmbTSO_SelectedIndexChanged);
      fillTso();     
}
protected void fillTso()
{
            m_dtTso = new DataTable();
            string str = "";
            //BindingSource m_tsoBinding;
            m_dtTso.Columns.Add("TSOID");//Ключ записи
            m_dtTso.Columns.Add("NUMBER");//Серийный номер
            m_dtTso.Columns.Add("NAME");//Имя
            RShDbFbModule dbModule = new RShDbFbModule();//firebird module
            dbModule.SetDbPath("localhost", "D:\\firebirdDB\\kDB\\kDB.fdb", "SYSDBA", "123", "UTF8", true);
            dbModule.Tso_Load(m_dtTso, ref str);//Заполнить таблицу m_dtTso; str - возвращает исключение,если возникло
            m_tsoBinding = new BindingSource();
            m_tsoBinding.DataSource = m_dtTso;
            m_tsoBinding.AllowNew = false;
            cmbTSO.DataSource = m_tsoBinding;
            cmbTSO.DisplayMember = "NAME";//В комбобоксе cmbTso отображение по имени
}
protected DataTable m_dtTso;
protected BindingSource m_tsoBinding;
private void cmbTSO_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataRowView row = (DataRowView)m_tsoBinding.Current;
            
            if (cmbTSO.SelectedIndex >= 0)
            {
                lblTSOState.Text = "Выбрано ТСО: "" + row["NAME"].ToString() + " , " + "С/Н: " + row["NUMBER"].ToString();
                lblTSOState.ForeColor = Color.Green;
            }
            else
            {
                lblTSOState.Text = "ТСО не выбрано!";
                lblTSOState.ForeColor = Color.Red;
            }
        }
Добавлено через 1 час 14 минут
Вопрос снимаю, разобрался, вроде...
у объекта tsoBinding добавил событие:
C#
1
m_tsoBinding.CurrentItemChanged += new EventHandler(m_tsoBinding_CurrentItemChanged);
Перенес код события cmbTSO_SelectedIndexChanged
в событие m_tsoBinding_CurrentItemChanged
все заработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2017, 19:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос BindingSource.Current отстает от выбора ComboBox (C#):

При клике по dataGridview менять current в bindingsource
Как сделать, чтобы при клике по dataGridview менялся current в bindingsource?

ComboBox + BindingSource
Есть справочная таблица hospital_branches (Branch_id, Branch_title) и...

Как можно реализовать выбор bindingSource для DataGridView из элемента ComboBox?
привет всем!! Подскажите как можно реализовать выбор bindingSource для...

DataGridView + EntityFramework, разобрать bindingSource.Current и вытащить значение UroleId по имени столбца
Всем здоровья. Ситуация следующая: - есть 2 связанные таблицы БД: User и...

Combobox и код выбора в пременную
Здравствуйте, У меня на форме есть combobox. Он содержит в себе второй...

Фильтрация данных в зависимости от выбора в ComboBox
Помогите организовать поиск(фильтрацию)во второй вкладке Combobox результат...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2017, 19:19
Привет! Вот еще темы с решениями:

Вывод данных в Label в зависимости от выбора в ComboBox
Как сделать так чтобы когда выбираешь из комбобокса фамилию студента(таблица...

Отображение данных в Label в зависимости от выбора в Combobox
Здравствуйте! У меня такой вопрос: есть БД, в ней таблица со столбцами diametr...

Изменение label после выбора элемента comboBox
На форме есть comboBox1 и допустим label1 , вот подключаюсь к базе данных...

Фильтрация данных в DGV в зависимости от выбора в ComboBox
На форме лежат 2 компонента combobox и datagredview. В базе данных 2 таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru