Адаптация пути к шаблону Data Standard в Vault

По умолчанию при создании нового файла Data Standard поиск шаблонов документов выполняется в папке $\Шаблоны в Vault. Данный путь можно изменить в файле XAML надстройки Data Standard. Администраторы также могут задать для разных приложений отдельные папки шаблонов (например, одна папка для шаблонов AutoCAD, другая — для шаблонов Inventor).

Как это работает

В диалоговом окне "Новый файл" надстройки Data Standard, используемом по умолчанию, есть поле со списком "Тип документа".

При выборе параметра в списке "Тип документа" и нажатии кнопки "ОК" функция создания нового файла Data Standard выполняет поиск шаблона в папке Vault, связанной с выбранным типом документа. Этот шаблон используется для создания нового файла.

Настройка пути к шаблону для диалогового окна "Новый файл стандартов"

Указать другой путь к шаблону в Vault можно, изменив следующий раздел файла XAML надстройки Data Standard.

<?xml version="1.0" encoding="utf-8"?>
<WPF:MainWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="MainWindow" xmlns:WPF="clr-namespace:CreateObject.WPF;assembly=CreateObject" AllowsTransparency="False" Background="#F0F0F0" MinWidth="500" MinHeight="518" MaxHeight="518">
    <Window.Resources>
        <!------------------------------------------------------------------------------------------------->
        <!-- This XmlDataProvider is used for defining Name/TemplatePath pairs that are used in the combo box "Document Type" and can be easily extended -->
        <XmlDataProvider x:Key="DocTypes"
                         XPath="/DocTypeData">                        
            <x:XData>
                <DocTypeData xmlns="">
                    <DocTypeInfo>
                        <Name>Inventor Part</Name>
                        <TemplatePath>$\Templates\Inventor\IPT</TemplatePath>
                    </DocTypeInfo>
                    <DocTypeInfo>
                        <Name>Inventor Assembly</Name>
                        <TemplatePath>$\Templates\Inventor\IAM</TemplatePath>
                    </DocTypeInfo>
                    <DocTypeInfo>
                        <Name>Inventor Drawings</Name>
                        <TemplatePath>$\Templates\Inventor\IDW</TemplatePath>
                    </DocTypeInfo>
                    <DocTypeInfo>
                        <Name>AutoCAD Drawings</Name>
                        <TemplatePath>$\Templates\AutoCAD</TemplatePath>
                    </DocTypeInfo>
                </DocTypeData>
            </x:XData>
        </XmlDataProvider>
        <!------------------------------------------------------------------------------------------------->
        ...

Элемент <Name> определяет значение, которое отображается в поле со списком в диалоговом окне "Новый файл". Элемент <TemplatePath>, невидимый для пользователя, используется для задания значения TemplatePath внутри модели вида.

Поле со списком "Тип документа" выглядит следующим образом:

...
<Label Content="Document Type" Grid.Row="2" Grid.Column="0" />
<ComboBox ItemsSource="{Binding Source={StaticResource DocTypes}, XPath=DocTypeInfo}"
          Name="DocTypeCombo"
          Grid.Row="2"
          Grid.Column="1"
          IsEnabled="{Binding IsNewEntryDialog}"
          DisplayMemberPath="Name"
          SelectedValuePath="TemplatePath"
          SelectedValue="{Binding TemplatePath}"
          SelectedIndex="0"></ComboBox>
...

Атрибут DisplayMemberPath определяет элемент из источника данных, отображаемый в поле со списком. В этом примере используется значение "Имя".

Атрибут SelectedValuePath определяет элемент из источника данных (TemplatePath), заданный в качестве используемого значения пути к шаблону.

Атрибут SelectedValue="{Binding TemplatePath}" задает выбранный путь к шаблону в модели вида. Нужно добавить новое свойство привязки TemplatePath в модель вида.