Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
3 / 3 / 2
Регистрация: 20.11.2009
Сообщений: 47

Binding ComboBox

14.12.2010, 20:15. Показов 4175. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать с помощью биндинга установку элемента комбобокса по умолчанию?

Есть идея такая создать свой комбобокс и сделать в нем 2 свойства: DefaultValue и DefaultValuePath
И хотелось бы чтоб работало так:
XML
1
<ComboBox DefaultValue="Петров" DefaultValuePath="Lastname" />
То есть указываем путь к свойству в классе (DefaultValuePath) и само значение и получалось бы,
что в комбобоксе искался элемент, значение которого равно "Петров" и устанавливалось как SelectedItem.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2010, 20:15
Ответы с готовыми решениями:

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

Binding combobox в БД
Подскажите, как можно про binding строчку из combobox в БД??? Делаю, так но ругается: &lt;ComboBox Grid.Column=&quot;1&quot;...

Binding к Combobox
Всем привет. Сижу не понимаю как привязывать к Combobox-у. У меня есть таблица(Entity Framework) с языками, в которую я могу добавлять...

8
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
14.12.2010, 20:26
зачем это все... чем тебе нулевой элемент - не элемент по умолчанию...?
1
3 / 3 / 2
Регистрация: 20.11.2009
Сообщений: 47
14.12.2010, 20:54  [ТС]
Редактирование/добавление записи происходит как показано на картинке.
При добавлении новой записи создается еще одна строка в DataGrid'е
И некоторое значение комбобокса хотелось бы установить по умолчанию, так как значение
записанное в нем является часто используемым.
Например: для массы, часто используемым будет КГ, чем футы пуды и т.д.
Да и коллекция передаваемая в комбобокс отсортирована и нулевой мне не очень подходит.

Да и саму интересно стало понять как работает Binding.
В ComboBox'e есть DisplayMemberPath вот очень похоже на то что мне надо, т.е. похожа по принципу работы.

Как вот они так сделали, что из коллекции переданной комбобоксу достают значение записанное в DisplayMemberPath.
Изображения
 
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
14.12.2010, 21:04
я так понял, что у тебя есть коллекция объектов, ну так выставляй в конструкторе этого объекта, необходимое значение, которое будет по умолчанию...
0
15 / 9 / 0
Регистрация: 17.03.2010
Сообщений: 36
14.12.2010, 21:19
Если тебе не понятен сам биндинг, то я нашел это на заморских сайтах и приминил у себя в проекте

Конкретно у себя я делал на Canvas динамический элемент, то есть от размера кенваса менял внутренние элементы, если кто будет писать на WPF редактор графов поймет меня. Вообщем вот код, как это работает.

Это XAML
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Rectangle Stroke="Black" StrokeDashArray="1 0 1" StrokeThickness="2" Canvas.Left="0" Canvas.Top="0" Name="rectangleBorder">
            <Rectangle.Width>
                <MultiBinding>
                    <MultiBinding.Converter>
                        <c:MultiValueConverter_BorderWidth />
                    </MultiBinding.Converter>
                    <Binding ElementName="drawingUserControl" Path="ActualWidth" />
                    <Binding RelativeSource="{RelativeSource self}" />
                </MultiBinding>
            </Rectangle.Width>
            <Rectangle.Height>
                <MultiBinding>
                    <MultiBinding.Converter>
                        <c:MultiValueConverter_BorderHeight />
                    </MultiBinding.Converter>
                    <Binding ElementName="drawingUserControl" Path="ActualHeight" />
                    <Binding RelativeSource="{RelativeSource self}" />
                </MultiBinding>
            </Rectangle.Height>
        </Rectangle>
А так в коде работает.
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
    public class MultiValueConverter_BorderWidth : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            double canvasCord = (double)values[0];
 
            return canvasCord;
        }
 
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            return null;
        }
    }
 
    public class MultiValueConverter_BorderHeight : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            double canvasCord = (double)values[0];
 
            return canvasCord;
        }
 
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            return null;
        }
    }
Все что знал сказал, другого не умею, мне еще многому учиться ))))))))))).

Если это то и не совсем понятно как и что, то я могу и подлиннее код слить.

Поясню сразу
<Binding ElementName="drawingUserControl" Path="ActualWidth" />
это как бы забираются данные от другого элемента с именем drawingUserControl - в данном случае это мой элемент управлвения UserControl в котором много всего понапихано для того что бы шейп диаграмы принемал человеческий вид а не был просто Rectangle а Path - это та пропертя которая должна браться и передаваться в object[] values - остальное не знаю что такое и знать пока не хочу ))))))))))
1
3 / 3 / 2
Регистрация: 20.11.2009
Сообщений: 47
14.12.2010, 21:28  [ТС]
kenny69
Ты имеешь ввиду обращаться напрямую в коде к ComboBox
и устанавливать ему значение по умолчанию?

wartur
Ладно ща разберемся)

Я вот писал про DisplayMemberPath, как все-таки такое забабахать? =)
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
14.12.2010, 21:53
нет, я так понял у тебя есть какой-то класс у которого есть поля Name, LastName и т.д. так вот в этом классе в конструкторе выставляешь
C#
1
Name = "Петров"
.
0
 Аватар для dioxidin
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
15.12.2010, 12:57
Или по-другому... Есть класс, содержащий коллекцию итемов (назовем ее List<DataItem>). Этот класс будет играть роль ViewModel (читай описание паттерна MVVM). В классе заводим публичное свойство DefaultItemIndex и прибиндивай соответствующее свойство комбобокса к этом свойству и все... Главное при каждом новом заполнении твоей ViewModel новыми данными пересоздавать экземпляр этого класса и снова закладывать его в DataContext комбобокса (что не очень хорошо, но иногда приходится). Другим способом нужно во ViewModel заимплеменьтить интерфейс INotifyPropertyChanged и посылать сообщение, что свойство DefaultItemIndex изменилось. В результате все прибинденные к ViewModel обновят свои привязки.

Но мой совет.. не злоупотреблять биндингами. В очень сложных интерфейсах это приводит к чувствительному снижению производительности.
1
3 / 3 / 2
Регистрация: 20.11.2009
Сообщений: 47
17.12.2010, 23:03  [ТС]
Оказалось все проще дефолтные значения можно прибиндить сюды
"SelectedValue" и "SelectedValuePath".
Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2010, 23:03
Помогаю со студенческими работами здесь

Binding DataSet + ComboBox
Создал привязку к BD (SQLite). Создал DataSet Установил ассоциативный тип CobmboBox Теперь вопрос как чисто в xaml привязать наш...

Binding ComboBox.Text
Доброго дня! Имеется окно, DataGrid, ComboBox и две модели данных. У DataGrid свойство ItemsSource =...

ComboBox.SelectedIndex Binding to value-1
Добрый день! Возникла необходимость привязки данных, но чтобы от привязанного значения вычиталась единица. Сейчас привязка выглядит...

Binding combobox в textbox
Всем привет!!!! Подскажите, как можно binding выбранный item из combobox в textbox?

Data Binding файла xml: ComboBox остается пустым
Сделал так: в проект добавил папку DataSorce и положил туда &lt;?xml version=”1.0″ encoding=”utf-8″ ?&gt; &lt;companies&gt; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru