С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/41: Рейтинг темы: голосов - 41, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 6
.NET 4.x

Как правильно использовать DataSource?

07.10.2013, 14:22. Показов 8322. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
естm пример (частично взят из MSDN ссылка)

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
            
            // Initialize an array with data to bind to the combo box.
            var daysOfWeek =
                new[] { "Monday", "Tuesday", "Wednesday", 
                        "Thursday", "Friday", "Saturday", 
                        "Sunday" };
 
            ComboBox comboBox;
 
            // Initialize combo box
            comboBox = new ComboBox
            {
                DataSource = daysOfWeek,
                Location = new System.Drawing.Point(12, 12),
                Name = "comboBox1",
                Size = new System.Drawing.Size(166, 21),
                DropDownStyle = ComboBoxStyle.DropDownList
            };
            // Add the combo box to the form.
            this.Controls.Add(comboBox);
 
            // Initialize combo box
            comboBox = new ComboBox
            {
                DataSource = daysOfWeek,
                Location = new System.Drawing.Point(12, 42),
                Name = "comboBox2",
                Size = new System.Drawing.Size(166, 21),
                DropDownStyle = ComboBoxStyle.DropDownList
            };
            // Add the combo box to the form.
            this.Controls.Add(comboBox);
суть проблемы в том, что если выбрать в comboBox1 какой нибудь день недели, то автоматически выбирается тот же день недели во всех визуальных компонентах - там где массив daysOfWeek используется как DataSource (в данном примере в comobBox2). А мне это наоборот не нужно и копию массива создавать для реализации этой задачи не хотелось бы, мне нужно чтобы один и тот же массив (или коллекция) использовался как источник данных для разных визуальных компонент, но визуальные компоненты друг на друга не влияли таким вот образом как в этом примере. Я пытался найти ответ на этот вопрос - но не знаю как правильно его задать поисковику или MSDN чтобы найти на него ответ, поэтому слёзно прошу подсказать в какую сторону копать, или дать ссылку на пример или мануал, на любые зацепки. (с английским у меня тоже проблемы, но сойдёт и на английском... хоть что нибудь...)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2013, 14:22
Ответы с готовыми решениями:

Как правильно использовать стек, использовать вершину стека и т.п
Научите пожалуйста правильно использовать стек, использовать вершину стека и т.п. Просто стек очень нужен - очень полезный оператор.

Как правильно использовать потоки?
Доброго времени суток столкнулся со следующей проблемой не могу выполнить функцию в потоке protected string readDocuments(string...

Как правильно использовать классы?
Момент №1. у меня есть дополнительный класс public class Matrix в котором определена переменная MX также в классе есть функция:...

4
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 6
24.03.2014, 18:33  [ТС]
ура, решил проблему, к сожалению не сам но всёже

нужно у каждого comboBox после задания DataSource создавать новый BindingContext и тогда выбранная позиция в одном визуальном компоненте не будет влиять на другой визуальный компонент, не будет происходить синхронизации.

C#
1
comboBox.BindingContext = new BindingContext();
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.03.2014, 01:08
каким же это образом оно синхронизируется если у контролов нет ничего общего кроме массива, а массивы никакую синхронизацию не поддерживают
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 6
25.03.2014, 10:44  [ТС]
я же описал суть проблемы ещё полгода назад. Проблема решена, выше описанным способом.
работает 100%.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
25.03.2014, 11:17
Chesn0k, дело в том, что для работы dataSource автоматически создается Binding - для связи источника и определенного по умолчанию свойства контрола. так же используется BindingManagerBase, который служит для изменения данных при смене активного элемента. соотвественно по умолчанию он один у всех и при смене в одном контроле вызывает изменение в других связанных.
ваше решение создает для combobox'a новый BindingManagerBase.
есть второй вариант - использовать BindingSource. Он инкапсулирует сразу и привязку данных и навигацию по данным. при этом каждый BindingSource имеет свой BindingManagerBase. мне удобнее им пользоваться:
C#
1
2
BindingSource bs = new BindingSource(daysOfWeek, "");
comboBox1.DataSource = bs;
создавайте для каждого контрола свой BindingSource и все.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2014, 11:17
Помогаю со студенческими работами здесь

Как правильно использовать foreach?
Добрый день, прошу помочь мне упростить мой код. Помню как-то это можно было сделать через foreach, но не помню как именно. Надеюсь смысл...

Как правильно использовать trackbar?
Всем привет, появилась задача сделать расчет % 3-мя trackbar`ми. Пример: Имеем 3 состояния, вещь создастся без дополнений Вещь...

Lock как правильно использовать?
Ребят, я тут только с lock-ом разбираюсь... Я так понял что его параметр это ключ доступа, соответственно с разным ключом в один и тот же...

Как правильно использовать MessageBox?
как мне правильно использовать if catch для того чтоб при отсутствии файла при подключении мне выводилось сообщение :)private void...

Как правильно использовать фильтр в списках?
Всем привет! Столкнулся с такой проблемой, нужно отфильтровать список и вывести только те значения, которые мне нужны Но отфильтровать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru