Windows Phone 7.1 ListPicker,轻松的方式去全模式?

时间:2011-09-05 22:35:48

标签: c# windows-phone-7.1

我正在尝试将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" />

我在C#中填充ListPicker,使用列表设置为ItemSource,如果有任何帮助的话。 另一件事是,当我尝试在xml中编写“ListPickerMode”时,它会将其作为选项提供,但是当我写完整个内容时它会建议“完全”“扩展”和“正常”。

如果我向ListPicker添加5个项目,它会自动使用FullMode,我尝试更改ItemCountThreshold =“0”,但这只会产生更多错误。

我正在使用Windowns Phone 7.1 OS 2011 aug发布。

在Windows Phone编程的第一天,这可能只是我的愚蠢:)

UPDATE!

好像它看起来像ItemCountThreshold&amp; 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以全屏显示或展开。

2 个答案:

答案 0 :(得分:5)

正如silverlight工具包[1]的问题跟踪器中所述,不应设置ItemCountThreshold(并且不能使用简单的xaml设置)。

但是,此问题有两种解决方法。如果您不介意使用代码隐藏,请通过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

答案 1 :(得分:4)

作者提出的解决方案(为了更好的可见性而移到这里):

  

好像它看起来像ItemCountThreshold&amp;已删除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以全屏或   扩大。