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

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

07.10.2013, 14:22. Показов 8358. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru