在 Windows Phone 8 的混合示例数据中使用 ListBox 而不是 LongListSelector
Posted
技术标签:
【中文标题】在 Windows Phone 8 的混合示例数据中使用 ListBox 而不是 LongListSelector【英文标题】:Usage of ListBox instead of LongListSelector in Blends Sample Data for Windows Phone 8 【发布时间】:2012-12-10 11:39:40 【问题描述】:我只是在试验与Corinna Black demonstrated in this Video 相同的示例应用程序(大约 21:40)。她在 Blend 中创建了示例数据,并将其作为 ListBox 绑定到 Panorama Item 的 Grid。当我将集合拖放到设计器时,这是 Blend 将为我提供的唯一选项。
从 Windows Phone 8 开始,ListBox 被 Windows Phone Toolkit 的 LongListSelector 取代。我现在的问题是:Blend 怎么可能使用 ListBox 而我却不能在 Visual Studio 2012 中使用 ListBox,尽管我已经创建了一个仅限 Windows Phone 8 的项目?如果我尝试在 XAML 代码中用 LongListSelector 替换 ListBox,Blend 会报错:
名称空间“http://schemas.microsoft.com/client/2007”中不存在名称“LongListSelector”
我认为 ListBox 的使用已被弃用,因为 LongListSelector 中的滚动性能更好。那么为什么 Blend 使用旧的 ListBox 而不是应该更好的 LongListSelector 呢?以及如何使用 LongListSelector 为 Windows Phone 8 应用程序创建示例数据?
谢谢!
【问题讨论】:
【参考方案1】:我找到了问题的答案:LongListSelector 不是普通库的一部分。它是Windows Phone Toolkit library 的一部分,必须使用 NuGet 预先添加。
将新命名空间添加到您的 xaml:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
现在您可以使用
访问 LongListSelector<phone:LongListSelector/>
然后您可以分配一个 ItemsSource,甚至可以与设计数据混合使用它。
【讨论】:
【参考方案2】:longlistselector 现在是核心 SDK 库的一部分。我建议使用它而不是工具包的 LLS。
核心库 LLS 用于无缝替换您的 WP7 列表框,如果您想使用该工具包的列表框,则必须进行一些自定义。
【讨论】:
以上是关于在 Windows Phone 8 的混合示例数据中使用 ListBox 而不是 LongListSelector的主要内容,如果未能解决你的问题,请参考以下文章
无法在 IBM Worklight 的 windows phone 8 中运行混合应用程序
采用从混合弹出到 Visual Studio Windows Phone 8
Windows Phone 8 按钮文本动画 - C# / XAML
如何使用 Windows Phone 8 发布到 RESTful API