2011-09-05 113 views
19

我試圖使用的ListPicker控制器來獲取全屏選取窗口。然而,它只是產生一個錯誤,當我嘗試Windows phone 7.1 ListPicker,簡單的方法去完整模式?

「類型‘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" /> 

我用一個列表來設置的ItemSource如果這是任何幫助填充我ListPicker在C#。 另一件事是,當我嘗試在xml中編寫「ListPickerMode」時,它會將它作爲一個選項給出,但是當我將所有內容寫入「Full」「expanded」和「Normal」時。

如果我添加5個項目到ListPicker它會自動使用FullMode,並且我已經嘗試更改ItemCountThreshold =「0」但這隻會產生更多的錯誤。

我使用的是Windowns Phone 7.1 OS 2011 aug版本。

這可能只是我,是愚蠢的,第一天的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" /> 

ExpansionMode將使Listpicker顯示爲全屏或展開。

+5

你可以回答你自己的問題,通過提供一個答案,然後將其標記 – thumbmunkeys

回答

4

由筆者提出的解決方案(正朝這邊更好的可見性):

那麼它看起來像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出現在全屏或 擴大。

5

正如Silverlight工具包[1]的問題跟蹤器所述,不應該設置ItemCountThreshold(並且不能使用簡單的xaml進行設置)。

但是,這個問題有兩種解決方法。

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

要在XAML中設置的值,你可以使用綁定:

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

在這個例子中,我使用如果你不介意使用代碼隱藏,通過的SetValue設置屬性僞造綁定表達式並使用FallbackValue設置值。當然,實際的工作綁定也應該起作用。 xaml方法僅在WP8 SDK上進行了測試,但它也應該在7.1上運行。

編輯:剛發現xaml方法打破了設計師。

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