【问题标题】:Splitting a large XAML project among multiple XAML files在多个 XAML 文件之间拆分大型 XAML 项目
【发布时间】:2012-06-20 13:15:01
【问题描述】:

我有一个大型 XAML 项目,其中有一个主 TabControl,每个选项卡“页面”都有自己相当复杂的一组元素和用户交互。 (这是针对复杂的工业控制应用)

我希望每个选项卡的内容都有自己的 XAML 文件,部分是为了避免拥有一个包含所有内容的巨大、无法管理的 XAML 文件,部分是为了让不同的设计人员可以各自在自己的选项卡上工作。

在多个文件中拆分 XAML 项目的“正确”方法是什么?我在 Stack Overflow 上看到过这里建议的静态资源和用户控件,但似乎都不是这些功能的“预期”目的。前者似乎适用于字符串、画笔、颜色、样式、模板等资源,而后者似乎适用于自定义控件。在多个文件和设计器之间拆分大型 XAML 项目的“最佳实践”是什么?

提前致谢。

【问题讨论】:

标签: wpf xaml


【解决方案1】:

尝试将 DataTemplate 用作资源(并因此拆分您的资源文件)并将其 DataType 属性设置为与数据对象的特定实例相对应的特定 UI 片段(如果这适合您的场景)

http://msdn.microsoft.com/en-us/library/ms742521.aspx#Styling_DataType

否则,请使用 UserControls,因为这是满足您要求的公认方法。

【讨论】:

  • 毫无疑问,用户控件工作适用于这种情况,但我从 MSFT 看到的大多数示例和文档表明,它们的预期目的是创建将多次重复使用或放入控制库中以在多个项目之间共享等。但是由于需要将大型 XAML 项目拆分为多个文件以减少麻烦或在多个开发人员/设计人员之间进行划分在大型商业/工业项目我(也许是愚蠢地)认为 MSFT 有一个为此而设计的功能,所以我不必使用扳手作为锤子。
  • @user316117 我和你有同样的问题。你找到答案了吗?为什么不能使用框架?
  • @user316117 已经接受了这个答案,因为我分享了他们的担忧,所以我会效仿。在使用过许多其他 GUI 工具包和 API 之后,我也觉得这很奇怪,但由于它运行良好并且没有人反对,我想这是“正确”的方式。
【解决方案2】:

我会为此使用多个用户控件,因为您将多个控件组合到一个控件中,并且由于它创建的概述,这使得它更加高效

【讨论】:

  • Microsoft 将 UserControl 类的目的描述为“创建控件的简单方法”。但我不需要创建任何控件 - 库存控件对我来说很好。每个选项卡都有特定的用途,例如,一个选项卡将用于配置一件制造设备(按钮、复选框等),另一个选项卡将一件设备与正在制造的零件和零件库存(单选按钮,某种绑定到数据库的列表视图等)。所有控件都非常普通,但每个选项卡都有自己的用途,WRT 制造过程。
  • 当你想创建自己的控件时,我认为你会创建一个 CustomControl 而不是 UserControl,这就是我的工作方式,抱歉 =)
猜你喜欢
  • 2011-06-26
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多