WPF:构建我自己的分页项目列表....;)?

时间:2010-05-13 07:24:39

标签: wpf wpf-controls itemscontrol

基于storabiligty的原因我在XAML图中有以下对象:

  • 工作区,
  • 包含WorkSheets,
  • 包含WorkItems

WorkArea,workSheets是ItemsControl实例。

开始:我没有在这里使用标准元素的原因是我将加载/保存 - 它们代表商业竞争(实际上是交易应用程序的工作区域),我希望那些具有as尽可能少的“剩余”元素。我特别不希望被绑定到来自第三方的用户级控件并定期更改dll名称(在升级期间 - 主要版本在那里进行编码)并且我不确定我根本不会替换它们,所以我宁愿选择我自己的“苗条”物品。

WorkArea对应一个窗口(实际上有一个WorkAreaWindow将WorkArea作为ContentItem。

WorkSheets应该像TabControl一样工作 - 你可以在它们之间切换。

我该怎么做? ;)

我得到的印象是,通过模板机制,我可以将WorkSheets“visuall wrap”作为TabControl中的页面,但我几乎完全迷失了方法。任何人都可以启发我吗?

这是我有多远:

我的层次结构是WorkArea - >工作表 - >工作项(多个)

WorkArea应显示为TabControl,每个WorkSheet有一个选项卡。

WORKAREA:

        <local:WorkArea x:Name="WorkArea">
            <local:WorkArea.Template>
                <ControlTemplate>
                    <TabControl>
                        <ItemsPresenter />
                    </TabControl>
                </ControlTemplate>
            </local:WorkArea.Template>

            <local:WorkArea.ItemTemplate>
                <DataTemplate>
                    <TabItem Header="{Binding Path=Title}">
                        <ContentPresenter />
                    </TabItem>
                </DataTemplate>
            </local:WorkArea.ItemTemplate>
            <local:WorkSheet Title="Markets">
                <local:WorkTile local:WorkSheet.Row="2" local:WorkSheet.Column="3">
                    test-11

我现在看到的是TabControl,有一个Tab。没有文字,一个标签中的所有内容。有人知道如何进一步分裂吗?

1 个答案:

答案 0 :(得分:3)

您应该仔细阅读Josh Smith对MVVM here的介绍,并查看演示应用程序源代码。演示应用程序几乎就是您要求的。它使用数据模板,可观察集合绑定和tabcontrol / tabitem基于“联系人”数据的自定义类动态生成选项卡式界面。一些MVVM和命令可能不是你的东西,但是一部分代码可以满足您的需求。 XAML完全没有代码。您只需将窗口的数据上下文设置为工作区类实例,该实例将具有可观察的工作表集合,而工作表又具有可观察的workItem集合,项目/数据模板将执行所有操作。