![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
Hobotanius |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Здравствуйте.
Как изменить ширину выпадающего списка ComboBox'а? У меня элементы очень длинные - некрасиво получается - выпадающий список на всю ширину экрана открывается. Нужно чтоб выпадающий список был по ширине таким же как сам комбобокс. Найти нужного свойства ширины списка не удалось... Как это сделать? |
|||
|
||||
hexzo |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
По такому принципу, только надо ещё придумать как забиндить относительно, к владельцу элемента а не к конкретному имени.
Добавлено @ 08:18 Вот такой магией можно забиндить относительно.
Это сообщение отредактировал(а) hexzo - 27.9.2011, 08:18 |
||||
|
|||||
Hobotanius |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Спасибо что уделили внимание.
Сделал так:
В классе делаю так:
Результат: ![]() Без шаблона:
Результат такой: ![]() Почему же сбивается программный биндинг? Или что я упускаю - от чего не получается? |
||||||
|
|||||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
1. Как у вас Label что-то отображает если Label.Text не установлен?
2. Вообще надо использовать ComboBox.MaxDropDownHeight для ограничения ширины дроп дауна 3. Combobox.DisplayMemberPath мне кажется не работает в случае с шаблоном. 4. Чем отличается вариант "Без шаблона" от основного? --------------------
http://gvozdin.ru |
|||
|
||||
Hobotanius |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Это вопрос или подсказка? Если вопрос: То я же создаю привязку...
Отличается отсутствием этого кода:
Но как это возможно? Ведь MaxDropDownHeight - возвращает или задает максимальную высоту раскрывающейся части поля со списком, а не ширину. А MaxDropDownWidth - не существует. :(
Могу предположить что слетает вся привязка к _dataSourceComboBoxRegJournal, однако тогда не понятно от чего именно две пустых строчки выпадает. Хотя... А почему именно DisplayMemberPath cлетает? Непонятно пока что... |
||||||||||
|
|||||||||||
hexzo |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Hobotanius
Ну так шаблон то всегда пустую метку отображает, там же нужно указать чем её заполнять.
Прикольно. ![]() |
||||
|
|||||
Hobotanius |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Я не понимаю как связать _dataSourceComboBoxRegJournal с Label. Ведь метка представитель элемента, а _dataSourceComboBoxRegJournal это набор элементов. Печально что не предусмотрено MaxDropDownWidth. Было бы меньше гемороя на мой взгляд. Или я ошибаюсь? Я пробовал такой вариант - создал в БД специальную вьюшку в которую добавил поле с обрезанным наименованием услуги. И тогда выпадающий список в ширину всгда такой же как и основной комбобокс, но при ресайзе окна основной комбобокс расширяется и снова получается некрасиво. Обрезанные на полуслове строки выглядят ужасно когда есть пространство для их продолжения. |
|||
|
||||
hexzo |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Hobotanius
Нужно указать свойство элемента коллекции которое должна отображать метка. Я в комбо бокс запихивал прямо лейблы, и соответственно это свойство Сontent.
Hobotanius
Ща придёт Gvozdin и всё нам объяснит. ![]() |
||||||
|
|||||||
Hobotanius |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Здорово! Огромное спасибо всё получилось.
Рабочий вариант таков:
Результат: ![]() На рисунке видно что выпадающий список чуть шире чем основное окно комбобокса это из-за свойства Margin у комбобокса. Я недавно (c августа) изучаю wpf - я так понял что синтаксис привязки в XAML не допускает арифметических операций. Как же наиболее красиво описать привязку ширины как актуальный размер комбобокса минус марджин? |
||||
|
|||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
C MaxDropDownHeight погорячился
![]() Да как-то странно что нету MaxDropDownWidth ... --------------------
http://gvozdin.ru |
|||
|
||||
Hobotanius |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Оказывается дело тут не в Margin!
Я переделал немного разметку и избавиля от ненулевого марджина, но результат тот же. Вот что отображается: ![]() Привязка та же:
Почему выпадающий список больше комбобокса не понимаю. Как можно обойти то что в привязке нельзя использовать арифметику? |
|||
|
||||
hexzo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
Hobotanius |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
То есть, если я правильно понял, создать ещё одно свойство и создать событие которое будет реагировать на изменение значения этого свойства. И в обработчике прибавлять или отнимать сколько нужно, а затем уже к этому свойству привязывать? Увидеть бы пример. Это сообщение отредактировал(а) Hobotanius - 7.10.2011, 08:18 |
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Простой конвертер можно использовать, в нем делайте что хотите
Даже мульти байндинг можно использовать, что бы вычислять на основе нескольких значений --------------------
http://gvozdin.ru |
|||
|
||||
Hobotanius |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |