Подтвердить что ты не робот

Windows phone 7.1 ListPicker, простой способ перехода в полный режим?

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

"В System.Windows.dll произошла первая случайная ошибка типа" System.Windows.Markup.XamlParseException "

Дополнительная информация: Установить свойство 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 в С#, используя список для установки как ItemSource, если это какая-то помощь. Другое дело, что когда я пытаюсь написать "ListPickerMode" в xml, он делает это как опцию, но когда я написал все это, предлагаю "Полный" "расширенный" и "Обычный".

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

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

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

ОБНОВЛЕНИЕ!

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

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

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

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

4b9b3361

Ответ 1

Как указано в контролере ошибок инструментария 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

Ответ 2

Решение, предложенное автором (перемещение для лучшей видимости):

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

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

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

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