【问题标题】:UserControl instead of DataTemplates - is there a way for big collections?UserControl 而不是 DataTemplates - 有没有办法进行大集合?
【发布时间】:2011-06-26 21:47:03
【问题描述】:

有两种方法。可能两个人都傻... 我必须显示一些项目集合。

第一个。

我将 DataTemplate 用于 ListBoxItem。 只需设置 itemSource = myCollection;

就是这样。简单的方案。

第二个。

我的收藏中的每个项目都有属性view。这是一个用户控件。这定义了项目的呈现方式。

仅使用 ContentPresenter 创建 DataTemplate

Content 属性绑定到 view

只需设置 itemSource = myCollection;

就是这样。更复杂。但也可以。

第二个有生存权吗?我的疑问是我必须为我的集合中的每个项目创建 UserControl 的实例?

500件以上的收藏是不是太贵了?

谢谢。

【问题讨论】:

    标签: windows-phone-7 collections user-controls datatemplate


    【解决方案1】:

    我认为没有太大区别,使用 DataTemplate 方法,框架将为集合中的每个项目创建一个 DataTemplate 实例。在第二种方法中,将为每个项目创建一个用户控件的实例,可能会有更多的控件,但每个项目只有几个。

    第二种方法可能更可取的一个原因是您可以有逻辑围绕哪些内容绑定。这可能意味着列表中的每个项目都有不同的用户控件。 Caliburn Micro 让您可以非常自然地使用这种方法。

    【讨论】:

    • 感谢您的回答。你是对的——每个元素都可能有自己的观点和逻辑。但现在我面临一些问题。如何通过第二种方法使用任何虚拟化东西?
    • 我相信列表框本身会处理虚拟化,任何一种方法都可以使用。
    • 我很确定列表框不会自动分页。还有另一个控件可以添加该行为,当我想到名称时,我将编辑此评论。
    • 对不起,我的意思是说,ListBox 在幕后使用了 VirtualizingStackPanel。
    • 它不允许我编辑。但无论如何......我在考虑 DataPager 但它似乎在 WP7 列表框中有 is 虚拟化支持。但是,您需要付出一些努力。这是详细的演练:shawnoster.com/blog/post/…
    猜你喜欢
    • 2019-07-12
    • 2021-08-29
    • 2021-10-24
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多