【问题标题】:How can I extend the Hub control to support an ItemsSource property like the Panorama control如何扩展 Hub 控件以支持像 Panorama 控件这样的 ItemsSource 属性
【发布时间】:2015-01-31 01:18:00
【问题描述】:

我的理解是新的 Hub 控件应该替换 Windows Phone 8.1 中的 Panorama 控件。但是,新的 Hub 控件没有像 Panorama 控件那样的 ItemsSource 属性。我仍然可以使用支持 ItemsSource 属性的 Pivot 控件,但它仅在我的手机项目中可用。我想使用 Hub 控件,因为它在 Phone 和 Store 项目中都可用。

是否可以以某种方式扩展 Hub 控件,使其支持任意给定数量的 HubSection,具体取决于通过 ItemsSource 集合提供给它的部分项目的数量?

【问题讨论】:

    标签: winrt-xaml windows-8.1 windows-phone-8.1


    【解决方案1】:

    我想我理解你想要做的是像Hub.ItemsSource 这样为你创建不同的HubSection?这严重违反了控制团队的建议。有几个原因。第一个是控件的意图是成为应用程序中心页面的精选项目列表。第二个与性能有关。

    话虽如此,没有什么可以阻止您创建一个实现您想要的相同概念的Attached Property。但动态HubSection 根本不是控制的意图。您可能想回复说“那么它应该如何替换Panorama 控件?”现实情况是,Hub 控件是我们拥有的最接近 Panorama 控件的东西,而不是一对一的替代品。

    我敢打赌,你肯定可以没有它。但你肯定不是第一个问的。开发人员希望一切都尽可能动态。但这实际上并不是最好的性能。而且,性能在这里值得再次考虑。我想,和你一样,很多开发人员在开始构建通用应用程序而不是 Silverlight 应用程序时都会重新布线。对不起,这不是一对一的。

    【讨论】:

    • Pivot 控件支持 ItemSource,所以我想知道 Hub 的性能问题是否类似于 Pivot 的性能问题。另外,根据the article at this link,将集线器控件子类化会更简单,还是使用答案中提到的附加属性有优势?
    • 我将回到您无法虚拟化 HubSection 的事实(解释性能)。但同时,是的,我认为子类化会给你同样的结果,甚至可能给你一个更清晰的实现。我不想在推荐您在这里想要做的事情时脱口而出。但它会起作用。
    【解决方案2】:

    【讨论】:

    • 这也是我能找到的最佳解决方案,并将其包含在我对@JerryNixon 提供的答案的评论中。您是否尝试过此解决方案,您能否验证它在已发布的应用程序中运行良好?
    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2022-01-18
    • 2012-07-09
    • 2012-06-13
    相关资源
    最近更新 更多