2011-09-05 11 views
19

Próbuję użyć kontrolera ListPicker z ListPickerMode="Full", aby uzyskać okno wyboru pełnego ekranu. Jednak to właśnie generuje błąd, gdy próbujęTelefon Windows 7.1 ListPicker, łatwy sposób, aby przejść do trybu pełnego?

„Pierwsza szansa wyjątek typu«System.Windows.Markup.XamlParseException»wystąpił w System.Windows.dll

Informacje dodatkowe: Ustaw właściwość Microsoft.Phone.Controls.ListPicker.ListPickerMode zwrócił wyjątek. [Line: 49 Pozycja: 57]”

Oto mój kod:

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

I wypełnić mój ListPicker w C# za pomocą listy ustawić jako ItemSource jeśli to jest każda pomoc. Inną sprawą jest to, że kiedy próbuję napisać "ListPickerMode" w xml, to daj to jako opcję, ale kiedy napisałem całą rzecz, to sugeruję "Full" "expand" i "Normal".

Jeśli dodaję 5 elementów do ListPicker, automatycznie używa trybu FullMode i próbowałem zmienić ItemCountThreshold = "0", ale to tylko generuje więcej błędów.

Używam aplikacji Windowns Phone 7.1 OS 2011 aug.

To chyba tylko ja, że ​​to głupie, pierwszy dzień z Windows Phone programowania :)

UPDATE!

Cóż, wygląda jak ItemCountThreshold & ListPickerMode został usunięty dla wersji 7.1 lub czegoś, co najmniej w części XAML, a nie w części C#, gdzie są one tylko do odczytu.

Rozwiązanie dla mojego problemu!

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

Tryb rozszerzenia spowoduje, że opcja "Lista słów" pojawi się na pełnym ekranie lub zostanie rozwinięta.

+5

można odpowiedzieć na swoje pytanie, dostarczając odpowiedzi, a następnie zaznaczając go – thumbmunkeys

Odpowiedz

4

Rozwiązanie proponowane przez autora (przenoszenie tu dla lepszej widoczności):

Dobrze wygląda ItemCountThreshold & ListPickerMode było usunąć za 7.1 lub czegoś, conajmniej w XAML części, a nie część C#, gdzie są tylko do odczytu.

Rozwiązanie dla mojego problemu!

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

ExpansionMode uczyni Listpicker pojawiają się na pełnym ekranie lub rozszerzony.

5

Jak stwierdzono w narzędziu do śledzenia zestawu narzędzi silverlight [1], ItemCountThreshold nie powinien być ustawiony (i nie można go ustawić za pomocą prostego xaml).

Istnieją jednak dwa obejścia tego problemu.Jeśli nie masz nic do korzystania związanym kodzie, należy ustawić właściwość poprzez setValue:

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

Aby ustawić wartość w XAML, można wykorzystać do wiązania:

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

W tym przykładzie używam fikcyjne wyrażenie wiążące i ustaw wartość za pomocą FallbackValue. Oczywiście, rzeczywiste działanie wiążące również powinno działać. Podejście xaml zostało przetestowane tylko na pakiecie SDK pakietu WP8, jednak powinno działać również w wersji 7.1.

Edycja: Właśnie się dowiedziałem, że podejście XAML niszczy projektanta.

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

Powiązane problemy