Анатомия файла XAML

Autodesk рекомендует внимательно изучить принципы использования компонентов файла XAML, прежде чем приступать к адаптации или созданию собственных диалоговых окон Data Standard.

Файлы XAML в Data Standard содержат ряд базовых компонентов, из которых формируется диалоговое окно Data Standard (сетки, поля со списком, метки, текстовые поля и кнопки).

Прим.: Многие из этих компонентов имеют более сложные параметры, чем те, которые рассматриваются в данном разделе. В данном разделе рассматриваются базовые поведения этих компонентов.

Сетка

Сетка представляет собой панель компоновки для управления всеми элементами с помощью табличной структуры из строк и столбцов. Каждая ячейка (определяется уникальной комбинацией строки и столбца) может содержать несколько элементов управления (таких как метки и текстовые поля).

Это базовая структура сетки. Для сетки требуется несколько строк, которые определяются в части Grid.RowDefinition. Значение высоты 30 задает фиксированное значение высоты, которое не может изменяться. Значение "auto" задает для строки динамическое значение высоты, так что высота строки может изменяться с учетом элементов управления. Такие же значения применяются к ширине столбца.

Элементы управления

После определения строк и столбцов можно добавить элементы управления, например метки и текстовые поля. Элементы управления необходимо присоединить к двум свойствам: Grid.Column и Grid.Row. Эти свойства определяют местоположение элемента управления в сетке. Значение первой строки — 0, второй — 1 и так далее.

Все следующие элементы являются элементами управления.
  • Метки

    Метки являются именами полей, которые нельзя редактировать. Они содержат текст, определяющий назначение метки и позволяющий пользователю определить, значение какого типа необходимо вставить в соответствующее текстовое поле или поле со списком. Например, рядом с пустым текстовым полем может быть метка с именем "Комментарии". В этом текстовом поле пользователь может ответить на комментарии.

    Метка имеет свойство Content. Это свойство представляет собой текст, отображаемый для метки.

    <Label Grid.Row ="0" Grid.Colum="0" Content="sample" />
    
  • Текстовые поля

    Текстовые поля являются редактируемыми полями. В такое поле пользователь может ввести текст. Data Standard может считывать введенные значения и использовать их для других операций.

    Текстовому полю требуются следующие свойства:
    • Text: исходный текст, который должен отображаться в текстовом поле как пример. Если прописать код content="Введите комментарий здесь", текстовое поле будет содержать текст "Введите комментарий здесь" в начале и не будет пустым.
    • Name: получение или задание имени элемента для его идентификации. Имя содержит ссылку, которую кодовая часть (например, код обработчика событий) может использовать для ссылки на элемент.
    <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Prop[State].Value}" Name="testtextfield" />
    
  • Поле со списком

    Поля со списком — это нередактируемые поля, в которых можно выбрать параметр из списка существующих. Если это значение настроено, его можно извлекать для дальнейших операций.

    Для поля со списком требуются следующие дополнительные свойства:
    • Itemsource: объявление источника доступных для выбора значений данного элемента управления.
    • Text: исходный текст, который будет отображаться в поле со списком как пример. Если прописать код content="Соединенные Штаты", параметром по умолчанию для поля со списком будет "Соединенные Штаты", и этот текст будет отображаться в поле со списком.
    • 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. Например, можно связать текст в текстовом поле со свойством Cost в Vault, чтобы при каждом вводе данных в это конкретное текстовое поле свойство Cost в Vault автоматически обновлялось. Связывание позволяет автоматизировать изменение свойств, благодаря чему пользователю приходится выполнять меньше операций.

Prop [ ]

Prop[ ] является важной функцией для связывания. Данная функция обеспечивает доступ к свойствам файла в Vault. Чтобы сопоставить текстовое поле свойству Engineer, введите следующий код: <TextBox text="{Binding Prop[Engineer].Value}"/>. После создания текстового поля функция Prop[ ] возвращает значение этого свойства. При каждом обновлении текстового поля функции Prop[ ] отправляется уведомление, и она выполняет запись нового значения в сопоставленное свойство файла.