在WPF中呈现一组控件的最佳实践?

时间:2010-07-20 21:55:20

标签: c# wpf

我正在创建一个与Microsoft Outlook布局相似的WPF应用程序,左侧有一些导航按钮,右侧有一个显示内容的网格。我希望这个内容区域(只是一个网格,分为特定宽度的左侧,然后右侧的宽度=“*”)根据左侧的所选项目进行更改。当项目在左侧更改时,它将呈现一组不同的标签和按钮等。我很好奇什么被认为是在表单右侧呈现内容的最佳方式,特别是:

  • 使用Canvas控件,并在其上放置控件并在所选项目更改时“交换”Canvas控件?
  • 创建某种用户控件以换出此区域中的内容?

我意识到这个问题是主观的,但我正在寻找更有经验的开发人员对他们通常如何处理这类工作的反馈。

编辑:右侧需要为每个选定的项目呈现特定的用户界面 - 换句话说,右侧的用户界面是自定义的左侧所选项目。

2 个答案:

答案 0 :(得分:3)

您可能在这里寻找的是数据模板。如果您的右侧窗格是ContentControl,则可以将内容绑定到左侧的所选项目。然后,您可以为左侧列表中的每种对象类型定义数据模板。

几乎不需要使用代码来交换WPF中的内容 - 这就是DataTemplate行为的设计目的。

答案 1 :(得分:3)

您是否可以使用带有左侧选项卡的TabControl,然后将选项卡标题设置为非选项卡样式?它需要成为一个分裂的网格视图吗?