2014-09-28 5 views
0

Так один Конкретное поведение XAML комбобокс в WinRT причиняет мне огромную головную боль, потому что мой клиент видит это как недостаток, и не волнует, если это поведение контроля, он хочет, чтобы это изменилось. Однако я не могу найти ничего, что говорит о том, как изменить его. Поведение, о котором я говорю, заключается в том, что когда ничего не выбрано, всплывающее окно ComboBox открывается, отображая ItemsSource в середине списка. У меня есть отсортированный список стран, за исключением США, Великобритании, МОЖЕТ быть на вершине. Эти 3 элемента являются наиболее часто выбранными элементами, и клиент хочет их сверху, вместо того, чтобы прокручивать список, чтобы найти их. Это достаточно просто, но поскольку список открывается посередине, вам все равно придется прокручивать немного, чтобы добраться до них. Есть ли какое-то свойство, которое мне не хватает, что отключает это поведение? Я смог наконец убедить их, что CarouselPanel не был дефектом, но этот не собирается летать.WinRT XAML ComboBox открывается в середине списка

Заранее благодарен!

when no selection has been made list is opened in the middle

UPDATE: Итак, выпадающий в привязки данных через ViewModel. в этом случае ViewModel не имеет значения (это пустая строка) для этого конкретного свойства, поэтому Combobox показывает пустое, что является хорошим и желательным. Когда вы нажимаете на Combobox для выбора значения, он отображает список в середине доступных значений. это нежелательное поведение. он должен показывать первое значение в списке вверху!

ответ

0

Ну, можно подумать, что из коробки Combobox (нет другого встроенного выпадающего элемента управления) будет работать как любой другой элемент управления combobox в любой другой технологии MS на сегодняшний день, но, конечно, это MS , так почему все должно быть последовательным. Во всяком случае, мне пришлось создать «пустую» запись и предварительно выбрать этот элемент, если значение в виртуальной машине пуст, а затем записать код в установщике этого свойства, чтобы игнорировать, если «пустой» элемент, если он выбран. Это kludgy и wreaks кода запах, но он работает

0

При установке свойства SelectedItem к объекту, то ComboBox пытается сделать этот объект, выбранный в настоящий момент один в списке. Если объект найден в списке, он отображается в части редактирования ComboBox, а свойство SelectedIndex устанавливается в соответствующий индекс. Если объект не существует в списке, свойство SelectedIndex остается в текущем значении.

+0

Таким образом, это combobox является привязкой данных через ViewModel. в этом случае ViewModel не имеет значения (это пустая строка) для этого конкретного свойства, поэтому Combobox показывает пустое, что является хорошим и желательным. Когда вы нажимаете на Combobox для выбора значения, он отображает список в середине доступных значений. это нежелательное поведение. он должен показывать первое значение в списке вверху! – Shaggy13spe

+0

Можете ли вы применить свойство SelectedItem в событии click Combombox? – Lyle

+0

Выбрано к чему? Я не хочу предварительно выбирать выбор, если он еще не был выбран, поскольку это изменяет данные по строке. – Shaggy13spe