代码之家  ›  专栏  ›  技术社区  ›  TomTom

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

  •  2
  • TomTom  · 技术社区  · 14 年前

    基于存储性的原因,我在XAML图中有以下对象:

    • 工作区,
    • 包含工作表,
    • 包含工作项

    工作区、工作表是项控件实例。

    首先:我不在这里使用标准元素的原因是我的元素将被加载/保存-它们代表一个业务内容(实际上是一个交易应用程序的工作区域),我希望那些元素尽可能少地具有“剩余”元素。我尤其不想被绑定到来自第三方的用户级控件中,并且经常更改DLL名称(在升级期间-主要版本在那里编码),我不确定是否完全不会替换它们,所以我宁愿使用自己的“slim”对象。

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

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

    我该怎么做?;)

    我有这样的印象:使用模板化机制,我可以“可视化地将工作表包装为TabControl中的页面”,但我几乎完全不知道如何进行。有人能启发我吗?

    以下是我的距离:

    我的疗法是工作区-工作表-工作项

    工作区应显示为选项卡控件,每个工作表有一个选项卡。

    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。没有文本,一个选项卡中的所有内容。有人知道如何进一步分割吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   astonish    14 年前

    你应该仔细阅读乔希·史密斯对MVVM的介绍 here 并查看演示应用程序源代码。演示应用程序几乎正是您所要求的。它使用数据模板、可观察的集合绑定和tabcontrol/tabitem动态地基于“联系人”数据的自定义类生成选项卡式接口。一些MVVM和命令性的东西可能不是你想要的,但是代码的一部分做了你想要的。XAML根本没有代码隐藏。您只需将窗口的数据上下文设置为工作区类实例,该实例将具有可观察的工作表集合,而工作表又具有可观察的工作项集合,项目/数据模板将完成所有操作。