在Windows Phone 8的Blends示例数据中使用ListBox而不是LongListSelector

时间:2012-12-10 11:39:40

标签: listbox windows-phone windows-phone-8 blend longlistselector

我只是试验Corinna Black demonstrated in this Video(约21:40左右)的相同示例应用程序。她在Blend中创建了样本数据,并将其作为ListBox绑定到Panorama项目的Grid。当我将集合拖放到Designer时,这是Blend将为我提供的唯一选项。

从Windows Phone 8开始,ListBox被Windows Phone Toolkit的LongListSelector取代。我现在的问题是:虽然我已经创建了一个仅限Windows Phone 8的项目,但是当我无法在Visual Studio 2012中使用ListBox时,Blend可以使用ListBox吗?如果我尝试在XAML代码中用LongListSelector替换ListBox,Blend会抱怨此错误:

  

名称空间“LongListSelector”在命名空间“http://schemas.microsoft.com/client/2007”中不存在

我认为不推荐使用ListBox,因为LongListSelector具有更好的滚动性能。那么为什么Blend使用旧的ListBox而不是更好的LongListSelector呢?如何使用LongListSelector for Windows Phone 8应用程序创建示例数据?

谢谢!

2 个答案:

答案 0 :(得分:0)

我找到了问题的答案:LongListSelector不是普通库的一部分。它是Windows Phone Toolkit library的一部分,必须事先与NuGet一起添加。

将新命名空间添加到xaml:

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

现在您可以使用

访问LongListSelector
<phone:LongListSelector/>

然后,您可以分配ItemsSource,即使与设计数据混合也可以使用它。

答案 1 :(得分:0)

longlistselector现在是核心SDK库的一部分。我建议使用它而不是工具包的LLS。

核心库LLS可以无缝替换您的WP7列表框,如果您想使用工具包,则需要进行一些自定义。