.xaml 文件剖析

Data Standard 中的 .xaml 文件包含一些用于创建“Data Standard”对话框的基本组件,例如网格、组合框、标签、文本框和按钮。Autodesk 建议您在自定义或创建自己的“Data Standard”对话框之前,要确保先了解这些组件。

注: 其中的许多组件所包含的参数比我们在本主题中所探讨的那些参数要复杂。本主题旨在介绍这些组件的基本行为。

网格

网格是用于控制采用表格结构的行和列中的所有内容的布局面板。所有单元(通过行和列组合的方式,每个单元都保持唯一)均可以包含多个控件,如标签和文本框。

这是网格的基本结构。网格需要一些在 Grid.RowDefinition 部分中定义的行。高度 30 定义固定高度值,并且以后不能更改。值“自动”可为行指定动态高度,以便行根据控件变高或变低。相同的值适用于列宽。

控件

在定义自己的行和列之后,您可以添加控件,如标签和文本框。必须以两个特性来附着控件:Grid.Column 和 Grid.Row。这两个特性用于定义控件在网格中的位置。第一行为 0,因此第二行为 1,依此类推。

以下所有元素均为控件。
  • 标签

    标签不过是您无法编辑的字段名。它们包含表明标签用途的文本,以便用户知道那种类型的值必须在相应的文本框或组合框中插入。例如,称为“注释”的标签可能位于一个空文本框的旁边。用户据此可以知道需要在该文本框中添加注释。

    标签具有 Content 特性。此特性是针对标签显示的文本。

    <Label Grid.Row ="0" Grid.Colum="0" Content="sample" />
    
  • 文本框

    文本框是可以编辑的字段。用户可以在文本框中输入内容。Data Standard 可以读取输入的值并将其用于其他操作。

    文本框需要以下特性:
    • Text:您想要在文本框中作为样例显示的初始文本。如果您写入 content="Enter Comments Here",那么文本框起初将包含“Enter Comments Here”并且不为空。
    • Name:获取或设置元素的标识名称。名称提供了参考,以便它背后的代码(例如事件处理程序代码)可以引用元素。
    <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Prop[State].Value}" Name="testtextfield" />
    
  • 组合框

    组合框是无法编辑但允许用户直接从现有选项列表中选择项目的字段。如果配置,那么可以提取该值以供以后的操作使用。

    组合框需要以下附加特性:
    • Itemsource 声明此控件将从哪里获取可供用户选择的值列表。
    • Text:您想要在组合框中作为样例显示的初始文本。如果写入 content="United States",那么组合框的默认选项为“United States”并且会显示在组合框中。
    • Name:获取或设置元素的标识名称。名称提供了参考,以便它背后的代码(例如事件处理程序代码)可以引用元素。
    <ComboBox Name="MaterialCombo" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>
  • 按钮

    按钮是一种用户界面元素,为用户提供了一种简便的方式来触发“搜索”或“保存”等事件。

    按钮需要 Command 特性。此特性用于标识当触发按钮时需要执行哪个操作。

绑定

若要使用上述其中一个组件来控制或更改 Vault 文件特性,您需要了解“{Binding Prop[cost].Value}”。通过绑定可以将值映射到特定的 Vault 文件特性。例如,可以将文本框的文本绑定到 Vault 中的 Cost 特性,以便每次在此特定文本框中输入内容时,Cost 特性都会在 Vault 中自动更新。绑定是一种自动执行特性更改的绝佳方式,从而只将很少的工作留给最终用户来做。

Prop [ ]

Prop[ ] 是用于绑定的基本函数。通过该函数可以访问 Vault 中文件的特性。如果想要将文本框映射到特性 Engineer,请编写如下代码:<TextBox text="{Binding Prop[Engineer].Value}"/>。当创建文本框时,Prop[ ] 将返回该特性的值。每次文本框更新时,它都会通知负责将新值写入映射的文件特性的 Prop[ ] 函数。