Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
1

Заполнить ComboBox

26.10.2016, 15:17. Показов 2471. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Нужно мне ComboBox заполнить, числами от 0 до 23 и не получается.
XML
1
<ComboBox ItemsSource="{Binding Path=ar,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
В конструкторе ViewModel пробовал создавать ar, как List<int>, List<string>, int[], string[] - ничего не выходит, Combobox пустой. В каком виде ему список нужно скармливать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2016, 15:17
Ответы с готовыми решениями:

Исключение из ComboBox'а значений выбранных в других ComboBox'ов используя Binding
Возможно ли средствами Binding-a решить такую задачку: есть 5 TextBox - ов, и 3 ComboBox - а....

DataGridTemplateColumn с ComboBox. Как подключить ItemSource к ComboBox из кода
Есть привязка к таблице и простые стобцы отлично выводят данные, даже DataGridComboBoxColumn к...

Combobox to Combobox binding according to Foreign Key
Всем привет! :) Во-первых хочу сказать всем, что это самый лучший (судя по собственному опыту)...

Как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?
как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?

8
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
26.10.2016, 15:24 2
Лучший ответ Сообщение было отмечено Chizel как решение

Решение

Цитата Сообщение от Chizel Посмотреть сообщение
В конструкторе ViewModel пробовал создавать ar
ar должно быть свойством.

Цитата Сообщение от Chizel Посмотреть сообщение
Mode=OneWay,UpdateSourceTrigger=PropertyChanged
Тут у вас взаимоисключающие свойства

Цитата Сообщение от Chizel Посмотреть сообщение
В каком виде ему список нужно скармливать?
В любом, реализующем IEnumerable.

Ну и сама ViewModel должна, конечно, быть контекстом для комбобокса.
1
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
26.10.2016, 15:37  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
ar должно быть свойством.
Точно, затупил.
Цитата Сообщение от kolorotur Посмотреть сообщение
Тут у вас взаимоисключающие свойства
Почему?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
26.10.2016, 15:46 4
Цитата Сообщение от Chizel Посмотреть сообщение
Почему?
Mode=OneWay указывает на то, что изменения значений будут идти в одну сторону: от контекста к интерфейсу.
А UpdateSourceTrigger=PropertyChanged устанавливает, в какой момент данные из интерфейса должны записываться обратно в контекст, что входит в прямое противоречие с установленным режимом привязки.
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
26.10.2016, 15:52  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
от контекста к интерфейсу.
Хм, а почему в таком случае DataGrid у меня нормально обновляется именно с такими свойствами?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
26.10.2016, 16:03 6
Цитата Сообщение от Chizel Посмотреть сообщение
а почему в таком случае DataGrid у меня нормально обновляется именно с такими свойствами?
Потому что это относится к тому, что привязывается. Дата грид не создает новую коллекцию, потому ей нечего передавать назад в контекст.
А вот каждый элемент коллекции уже привязывается отдельно к своей строчке и ячейке. Вот если в том месте вы поставите это свойство, то данные из грида записываться назад в контекст не должны.
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
26.10.2016, 20:57  [ТС] 7
Цитата Сообщение от kolorotur Посмотреть сообщение
данные из грида записываться назад в контекст не должны
Так они из грида в контект и не должны записываться. Вся суть в том, чтобы отразить коллекцию классов в гриде. Поэтому OneWay (в одну сторону от контекста) и PropertyChanged (при изменении).
Здесь вроде то же самое, OneWay (в одну сторону из контекста берется мой массив с числами и записывается в ComboBox, так как из ComboBox'a в этот массив мне ничего писать не надо)
Или я что-то путаю?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
26.10.2016, 23:45 8
Цитата Сообщение от Chizel Посмотреть сообщение
Или я что-то путаю?
UpdateSourceTrigger определяет, когда надо данные записывать из интерфейса обратно в контекст: из грида или комбобокса в модель.
Соответственно, если у вас режим привязки установлен на OneWay (из контекста в интерфейс), то установка свойства UpdateSourceTrigger (из интерфейса в контекст) не имеет смысла
2
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
27.10.2016, 07:21  [ТС] 9
А, вот теперь понял в чем дело, спасибо!
0
27.10.2016, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2016, 07:21
Помогаю со студенческими работами здесь

заполнить comboBox значениями из ini
На форме находится элемент comboBox (абсолютно пустой, без строк). Как поместить в него строки из...

Выборка из БД: как заполнить ComboBox элементами из ArrayList
Делаю выборку из БД типа: select name from table, результат возвращаю с помощью ArrayList result....

ComboBox.DataSource и DataView: как заполнить ComboBox
Добрый вечер! Прочитал в книге, что &quot;В результирующем DataView, будут видимы все столбцы исходный...

Как заполнить Items ComboBox'a из Items другого ComboBox'a
Есть комбобокс на главной форме и комбобокс на Form2. Необходимо заполнить айтемс комбобокса на...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru