Windows phone 7.1 ListPicker, простой способ перейти в полный режим? - PullRequest
19 голосов
/ 06 сентября 2011

Я пытаюсь использовать контроллер ListPicker с ListPickerMode="Full", чтобы получить полноэкранное окно выбора.Однако при попытке

"выдается только первое сообщение об ошибке" System.Windows.Markup.XamlParseException "в System.Windows.dll

. Дополнительная информация: Задать свойство Microsoft.Phone.Controls.ListPicker.ListPickerMode сгенерировал исключение. [Строка: 49 Позиция: 57] "

Вот мой код:

<toolkit:ListPicker x:Name="OutputSelector" ListPickerMode="Full"   
Margin="0,542,6,0" Header="Output Type" Width="450" VerticalAlignment="Top" />

Я заполняю свой ListPicker в C #, используя список для установки в качестве ItemSource, если этолюбая помощь.Другое дело, что когда я пытаюсь написать «ListPickerMode» в xml, он дает его в качестве опции, но когда я написал все это, он предлагает «Полный», «расширенный» и «Нормальный».

Еслия добавляю 5 элементов в ListPicker, он автоматически использует FullMode, и я попытался изменить ItemCountThreshold = "0", но это просто генерирует больше ошибок.

Я использую Windowns Phone 7.1 OS 2011 aug release.

Вероятно, это только я, что глуп, первый день с программированием Windows Phone:)

ОБНОВЛЕНИЕ!

Ну, похоже, ItemCountThreshold & ListPickerMode был удален для 7.1 или чего-то еще, по крайней мере в XAMLчасть, а не часть C #, где они доступны только для чтения.

Решение моей проблемы!

<toolkit:ListPicker x:Name="OutputSelector" ExpansionMode="FullScreenOnly"   
Margin="0,542,6,0" Header="Output Type" Width="450" VerticalAlignment="Top" />

Режим расширения заставит средство выбора списков отображаться в полноэкранном или расширенном режиме.

Ответы [ 2 ]

5 голосов
/ 07 ноября 2012

Как указано в трекере проблем набора инструментов silverlight [1], ItemCountThreshold не следует устанавливать (и его нельзя установить с помощью простого xaml).

Однако для этой проблемы есть два обходных пути.Если вы не против использовать codebehind, установите свойство через SetValue:

//e.g., in the constructor, just after InitializeComponent();
ListPicker.SetValue(Microsoft.Phone.Controls.ListPicker.ItemCountThresholdProperty, 0);

Чтобы установить значение в xaml, вы можете использовать привязку:

<toolkit:ListPicker ItemCountThreshold="{Binding Hugo,FallbackValue=0}">(...)

В этомНапример, я использую фиктивное выражение привязки и устанавливаю значение с помощью FallbackValue.Конечно, фактическое рабочее связывание также должно работать.Подход xaml был протестирован только на WP8 SDK, однако он должен работать и на 7.1.

Редактировать: Только что обнаружил, что подход xaml нарушает конструктор.

[1] http://silverlight.codeplex.com/workitem/9742

4 голосов
/ 11 июня 2012

Решение, предложенное автором (здесь для большей наглядности):

Похоже, что ItemCountThreshold & ListPickerMode был удален для 7.1 или чего-то другого, по крайней мере в части XAML, а не в части C #,где они доступны только для чтения.

Решение для моей проблемы!

<toolkit:ListPicker x:Name="OutputSelector" ExpansionMode="FullScreenOnly"   
Margin="0,542,6,0" Header="Output Type" Width="450" VerticalAlignment="Top" />

Режим ExpansionMode заставит Listpicker появляться в полноэкранном или расширенном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...