基于存储的原因,我在XAML图中有以下对象:
WorkArea、workSheets是ItemsControl实例。
首先:我没有在这里使用标准元素的原因是,我的元素将被加载/保存--它们代表一个业务连接(实际上是一个交易应用程序的工作区域),我希望这些元素尽可能少有“剩余”元素。我特别不想被绑定到来自第三方的用户级控件中,并且经常更改dll名称(在升级期间--主要版本在那里编码),我不确定我是否会替换它们,所以我宁愿使用我自己的“瘦”对象。
WorkArea对应于一个窗口(实际上有一个WorkAreaWindow将WorkArea作为ContentItem。
WorkSheets应该像TabControl一样工作--你可以在它们之间切换。
我该怎么做?)
我给人的印象是,有了模板机制,我可以将WorkSheets“可视化”为TabControl中的页面,但我几乎完全不知道该如何处理。有人能启发我吗?
以下是我的成就:
我的英雄是WorkArea -> WorkSheet(s) -> WorkItem(s)
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。没有文本,所有内容都在一个选项卡中。有谁想过如何进一步解决这个问题吗?
发布于 2010-05-25 17:31:40
您应该仔细阅读Josh Smith对MVVM 这里的介绍,并查看演示应用程序源代码。演示应用程序几乎正是您所要求的。它使用数据模板、可观察的集合绑定和tabcontrol/tabitem为“联系人”数据动态生成基于自定义类的选项卡接口。有些MVVM和命令可能不是您的东西,但是代码的一部分完成了您要寻找的东西。XAML根本没有后面的代码。您只需将窗口的数据上下文设置为工作区类实例,该实例将具有可观察的工作表集合,而工作表又有可观察到的workItems集合,而item/数据模板将完成所有操作。
https://stackoverflow.com/questions/2825051
复制相似问题