【问题标题】:Silverlight 3 - Dynamic TabItems in TabControlSilverlight 3 - TabControl 中的动态 TabItems
【发布时间】:2009-06-22 13:07:47
【问题描述】:

我有一个 POCO(普通旧 CLR 对象)的 ObservableCollection,我想用选项卡式成语表示。最好使用 MVVM 模式,有没有办法将 TabItems 的集合绑定到我的 POCO 集合的计数?

因此,在这种情况下,如果我的收藏中有 3 个项目,我希望看到 3 个 TabItems。每个 TabItem 将在同一位置包含相同的控件,每个控件都绑定到集合中相应对象的属性。

我只是在寻找我可能使用的方法的概述或示例的链接。如果您需要更多信息,请随时询问。

谢谢。

【问题讨论】:

    标签: c# silverlight tabcontrol


    【解决方案1】:

    我可能会创建一个包含您的 POCO 项目的 ObservableColletion。然后,您可以将该 ObservableCollection 绑定到任何 Silverlight 项目渲染控件。您必须修改默认渲染模板来创建选项卡...但是使用该方法,您的选项卡将不断更新集合中的项目,而无需将任何代码放入代码隐藏文件中。

    更新

    这是 Silverlight 论坛的链接,其中有人使用 ItemsControl 和示例 XAML 代码构建了 TabControl:

    http://silverlight.net/forums/t/12271.aspx

    ...只需向下滚动一下即可查看示例。

    【讨论】:

    • 贾斯汀;谢谢回复。 POCO 项目位于 ObservableCollection 中(我编辑了我的帖子以反映这一点)。然后,我将如何绑定该集合以根据集合中的项目数生成 TabItems?
    • @Steve - 我可能会使用一个简单的 ItemsControl,创建自定义模板以将 ItemsControl 呈现为选项卡,然后将 ObservableCollection 绑定到 ItemsControl。选项卡将根据集合中的项目正确生成。
    • 贾斯汀。谢谢。我想我遵循你所说的大部分内容。你能举个例子吗?我想我可以靠我的欧文来管理,但举个例子可能会更快地推动它。谢谢。
    • @Justin - 感谢您的更新。我在该论坛上进行了一些搜索,但没有成功,因此感谢您的链接。
    【解决方案2】:

    执行此操作的一种方法是使用值转换器 (IValueConverter) 返回包装在 TabItem 中的 POCO。我发布了一个示例 here 作为相关问题的一部分。还有示例 xaml 绑定和 ViewModel 注入作为值转换器的参数。

    /jhd

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-20
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2012-01-29
      相关资源
      最近更新 更多