ListPicker внутри PanoramaItem не работает в SDK v7.1

Я использую ListPicker из Silverlight Toolkit для WP, август 2011 г., как показано ниже, но он не работает.

        <controls:PanoramaItem Header="settings">
                <toolkit:ListPicker>
                    <toolkit:ListPickerItem Content="5" />
                    <toolkit:ListPickerItem Content="10" />
                    <toolkit:ListPickerItem Content="15" />
                    <toolkit:ListPickerItem Content="20" />
                    <toolkit:ListPickerItem Content="25" />
                    <toolkit:ListPickerItem Content="30" />
                </toolkit:ListPicker>
        </controls:PanoramaItem>

Пытался заменить ListPicker из Silverlight Toolkit для WP, февраль 2011, но та же проблема.

Но я могу использовать ListPicker из Silverlight Toolkit для WP за февраль 2011 года в приложении, которое использует SDK v7.0. Кажется, проблема вызвана SDK v7.1

Нашел причину! Это потому, что ListPicker может содержать только 5 или менее 5 элементов. Если список содержит более 5 элементов, вместо этого используйте ListBox.


person Agile Hobo    schedule 30.08.2011    source источник
comment
Если вы хотите ответить на свой вопрос, добавьте его как ответ, а не как часть вопроса.   -  person Matt Lacey    schedule 30.08.2011
comment
StackOverflow не позволяет мне ответить на мой собственный вопрос, если это первое сообщение. Звучит смешно!   -  person Agile Hobo    schedule 31.08.2011
comment
Извините, не заметил проблемы с репутацией. Надеюсь, вы останетесь, заработаете больше репутации и избежите таких ограничений в будущем. Добро пожаловать в СО.   -  person Matt Lacey    schedule 31.08.2011


Ответы (2)


Если вы сталкиваетесь с ограничением, когда количество элементов превышает 5, убедитесь, что вы установили ItemCountThreshold, так как это ограничивает количество элементов, которые вы можете иметь в элементе управления в стандартном представлении. Значение по умолчанию для этого параметра равно 5, поэтому увеличение его до 6 должно решить вашу проблему.

См. также:
http://silverlight.codeplex.com/workitem/9412
и
http://blogs.msdn.com/b/delay/archive/2010/11/03/listpicker-i-hardly-even-know-er-a-detailed-overview-наборинструментовдляWindows-телефона-s-listpicker-control.aspx

person Matt Lacey    schedule 31.08.2011
comment
Он работает только с Silverlight Toolkit для WP за февраль 2011 года. Когда я устанавливаю для ItemCountThreshold значение больше 5, возникает исключение (я использую Silverlight Toolkit для WP за август 2011 года). - person Agile Hobo; 31.08.2011
comment
@Agile Hobo Как вам удалось установить ItemCountThreshold с помощью набора инструментов SL WP7 за август 2011 г.? Я обновился с февраля по август, и одно из изменений заключалось в том, что ItemCountThreshold был правильно настроен только для чтения, поэтому он должен был вызвать ошибку компилятора. - person Henry C; 06.09.2011
comment
В августовском выпуске они сильно изменились, особенно для ListPicker. Расширенный режим удален. - person Claus Jørgensen; 06.09.2011
comment
@Blakomen Когда я устанавливаю значение ItemCountThreshold через XAML, это не вызывает ошибку компилятора. Выдает исключение во время выполнения. - person Agile Hobo; 07.09.2011

Я только что использовал ListPicker из версии набора инструментов SLWP7 от августа 2011 года с семью элементами, поэтому я не думаю, что ваш жесткий предел в 5 правилен в целом, хотя он может быть специфичным для элемента панорамы. Когда вы говорите, что это не работает, вы имеете в виду, что ничего не происходит, когда вы пытаетесь его использовать (т. е. не регистрируется событие Tap) или вообще не отображается?

Следует отметить, что вы не можете использовать ListPicker в Scrollviewer — это известная проблема с версией инструментария SL от августа 2011 г. (см. http://silverlight.codeplex.com/workitem/9379).) Есть несколько обходных путей, которые я не пробовал, в основном связанные с изменением обработчика события Tap: http://forums.create.msdn.com/forums/t/90708.aspx и http://attowares.com/blog/2011/08/23/listpicker-inside-scrollviewer-wp7-toolkit-mango/ Возможно, что-то с элементом Panorama влияет на ListPicker таким же образом...

Но моя главная мысль заключается в том, что вы можете использовать ListPicker с более чем 5 элементами.

person Henry C    schedule 06.09.2011
comment
Я только что попытался добавить ListPicker с 6 элементами на портретную страницу и получил [System.ArgumentException] = {Параметр неверен. }. То же исключение, когда я добавляю ListPicker к элементу панорамы. - person Agile Hobo; 07.09.2011
comment
Кстати, здесь я обнаружил, что ListPicker может содержать только 5 или меньше элементов blogs.msdn.com/b/priozersk/archive/2010/09/01/ (см. комментарии ниже) - person Agile Hobo; 07.09.2011
comment
Можете ли вы показать мне код, демонстрирующий, как добавить более 5 элементов? Спасибо - person Agile Hobo; 07.09.2011
comment
Это не очень хорошо форматируется, но - xaml: ‹toolkit:ListPicker FullModeItemTemplate={StaticResource PickerFullModeItemTemplate} Header=Primary Type Name=PrimaryActionType› ‹/toolkit:ListPicker› - person Henry C; 08.09.2011
comment
и код программной части - List‹string› Stats = new List‹string›(); Статистика.Добавить(нет); Статистика.Добавить(СИЛ); Статистика.Добавить(VIT); Статистика.Добавить(DEX); Статистика.Добавить(INT); Статистика.Добавить(БДН); Статистика.Добавить(LUK); PrimaryActionType.ItemsSource = Статистика; - person Henry C; 08.09.2011
comment
и FullModeItemTemplate, помещенный в Application.Resources - ‹DataTemplate x:Name=PickerFullModeItemTemplate› ‹TextBlock Margin={StaticResource PhoneMargin} Text={Binding} Style={StaticResource PhoneTextTitle2Style}/› ‹/DataTemplate› - person Henry C; 08.09.2011
comment
@AgileHobo также касается вашей ссылки: похоже, речь идет о шаблонах дизайна WP7, которые являются рекомендациями по пользовательскому интерфейсу (и не обязательно связаны с функциональными особенностями элемента управления ListPicker в SLToolkit). - person Henry C; 08.09.2011
comment
ИМО, это должна быть ошибка ListPicker. Хотя он позволяет связать ItemSource с более чем 5 элементами, но не может добавлять более 5 элементов в XAML. - person Agile Hobo; 08.09.2011