Microsoft.Phone.Controls.Toolkit ListPicker создает XamlParseException

После того, как мне сообщили, что родной ComboBox не подходит, мне посоветовали взглянуть на Silverlight Toolkit ListPicker. Так я сделал и получил проблему.

Я открыл новый проект и вытащил новый ListPicker на главную страницу. ListPicker выглядит так:

<toolkit:ListPicker x:Name="Result">
    <toolkit:ListPickerItem Content="Win" />
    <toolkit:ListPickerItem Content="Place" />
    <toolkit:ListPickerItem Content="Lose" />
</toolkit:ListPicker>

При попытке запустить это я получаю XamlParseException с InnerException InvalidProgramException. Все, что я сделал, это перетащил элемент управления и добавил немного ListPickerItem. Удаление элементов по-прежнему приводит к ошибке, полное удаление элемента управления ListPicker позволяет отображать страницу без ошибок.

Я уверен, что что-то упустил, но любая документация, которую я читал, указывает на то, что эта разметка в порядке, включая http://windowsphonegeek.com/articles/listpicker-for-wp7-in-depth

Я могу предоставить любую другую необходимую информацию.


person anothershrubery    schedule 14.04.2012    source источник
comment
Убедитесь, что объявление вашей страницы включает пространство имен инструментария.   -  person Julien    schedule 14.04.2012
comment
Да, он xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" без него не скомпилируется.   -  person anothershrubery    schedule 14.04.2012
comment
Можете ли вы связать его с данными из кода программной части?   -  person Den Delimarsky    schedule 14.04.2012


Ответы (2)


ListPickerItem — это класс, используемый внутри ListPicker, и его не следует использовать напрямую.

Если вы просто хотите добавить список элементов, вы можете использовать для этого строки, например:

Добавьте новое пространство имен поверх страницы, чтобы получить доступ к классу String:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

Затем просто измените код ListPicker на этот:

<toolkit:ListPicker>
    <sys:String>Win</sys:String>
    <sys:String>Place</sys:String>
    <sys:String>Lose</sys:String>
</toolkit:ListPicker>
person Pedro Lamas    schedule 14.04.2012
comment
Я пытался использовать String, но это не сработало, на самом деле проблема заключалась в том, что я ранее установил 7.1 SDK, но библиотеки DLL не были зарегистрированы должным образом, они все еще были 7 dll. Я попытался обновить снова и все еще неправильные dll. Поэтому я полностью удалил и переустановил, обновил и получил правильные DLL. После этого ListPickerItem заработало. Но для удобства я все равно использовал String. - person anothershrubery; 17.04.2012

Проблема заключалась в том, что были прописаны не те dll, т.е. 7, а не 7.1. Мне пришлось удалить и переустановить, чтобы обновить его правильно, и это сработало.

person anothershrubery    schedule 17.04.2012