Data Standard のすべてのダイアログは、拡張子 .xaml (Extensible Application Markup Language)が付いたファイルが基準となります。XAML ファイルを修正して、Data Standard ダイアログをカスタマイズします。
XAML ファイルは、Data Standard ダイアログのレイアウトを説明します。具体的には、どのコントロール(ラベル、テキスト ボックス、コンボ ボックスなど)を使用するか、コントロールをどの CAD または Vault プロパティとバインドするかなどです。
XAML ファイルは XML ファイルで、テキスト/XML エディタで編集することができます。無償の XML エディタでおすすめは、Microsoft XML Notepad です。XML の書式設定ができれば他のエディタでもかまいません。オートデスクは、編集で最高のエクスペリエンスを得られるよう Visual Studio (Express 以上)を推奨します。XAML の構文では、大文字と小文字は区別されるため、大文字と小文字がサポートされ、入力ミスをキャッチするエディタを使用する方法が最適です。
Data Standard のダイアログで、表示する情報量に差がある場合、または異なる情報を表示する必要がある場合は、XAML ファイルを編集します。Configuration フォルダの PS1 ファイルは、ダイアログの動作をコントロールします 。
このトピックでは、よく使用されるコントロールの簡単な説明が表示されます。これらのコントロール、およびその他のコントロールの詳細については、Microsoft のヘルプ ページを参照してください。
XAML ファイルには複数のセクションがあり、最もよく使用するのがリソース、スタイル、およびコントロールです。
リソース セクションには、コントロール セクションで再使用される定義があります。会社の色が緑で表示されている場合は、コントロールに表示されるすべてのテキストが緑で表示されるよう定義することができます。
トリガはスタイル セクションにあります。トリガは、指定された場合(たとえば、新規レコードの作成や既存レコードの編集)にコントロールの表示や動作を定義します。しかし、より複雑な動作は、PS1 ファイルで定義されます。
コントロール セクション、またはレイアウトの領域は通常、コントロール <Grid> で始まります。グリッドは、Excel のテーブルのように、行と列にダイアログを分割します。デザインで必要な場合には、セルの分割や結合ができます。各セルには、簡単なテキストや文字入力テキストボックスのラベルなど、1 つまたは複数のコントロールを配置することができます。
XAML ファイルのレイアウトは、行と列のあるテーブルと似ています。このため、ダイアログやコントロールは動的です。つまり、マウスによりウィンドウをサイズ変更すると、コントロールが自動的にサイズ変更されることを意味します。また、座標を固定して作業することもできます。ただしこの場合、ダイアログがユーザによってサイズ変更されたり、一部のユーザが Windows のフォント設定を大きくすると、ダイアログのコントロールで座標は変わらないまま、オーバーラップしたり、ダイアログで利用可能なスペースを使用しない可能性があります。このため、テーブルの方法を使用するか、定義されたセル内のすべてのコントロールを展開することをお勧めします。
ダイアログはテーブルに似ているため、ダイアログを設計するときは、必要な数の列と行としてとらえます。通常は、列は 2 つで十分です。左側の 1 列をラベル用の固定幅、右側の 1 列をコントロール用の動的な幅とします。これは、既定のダイアログを作成する方法でもあります。必要な数の行によって、行の定義に従ってグリッドを定義します。グリッド内のコントロールはすべて、行と列(常に 0 から始まる)への参照があるため、これをもとにコントロールが表示されます。
XML および XAML では、すべてのキーワードは山括弧で囲まれています(<キーワード>)。通常、定義ブロックは、<Grid> のようなキーワードで始まり、スラッシュで始まる同じキーワードで終了します(例: </Grid>)。1 行の文の場合、次のような構文も表示される場合があります: <Label ... />キーワードの属性を追加したり、他のキーワードをネストする場合は、ダイアログの構造を定義します。XAML は大文字と小文字が区別されるため、大文字と小文字の扱いに注意します。
Grid
グリッド(Grid)は、行と列の表構造のすべてをコントロールするレイアウト パネルです。セルは、行と列の組み合わせで一意になります。すべてのセルには、ラベルやテキスト ボックスなどのコントロールを複数含めることができます。
これがグリッドの基本構造です。グリッドには、Grid.RowDefinition 部で定義する行が必要です。Height の値を 30 に指定した場合、高さの値が固定され、指定後は変更できません。値を "auto" に指定した場合、行の高さが動的になり、コントロールに応じて、厚くなったり薄くなります。同じ値が列の幅に適用されます。
行と列を定義した後、ラベルやテキスト ボックスなどのコントロールを追加できます。コントロールは、Grid.Column と Grid.Row の 2 つのプロパティでアタッチする必要があります。これらのプロパティは、グリッド内のコントロールの位置を定義します。最初の行には 0、2 番目の行には 1 というように順次指定します。
Label
ラベル(Label)はフィールド名で、ユーザは編集できません。ラベルには、何のラベルかを示すテキストを指定します。このテキストを基に、ユーザは対応するテキスト ボックスやコンボ ボックスにどのようなタイプの値を挿入する必要があるかを把握できます。たとえば、Comments というラベルを空のテキスト ボックスの横に配置したとします。この場合、ユーザはテキスト ボックスにコメントを入力することを把握できます。
Label には Content プロパティがあります。このプロパティは、ラベルに表示するテキストです。
<Label Content="sample" Grid.Row ="0" Grid.Colum="0"/>
既定のダイアログは、<Label Content="{Binding UIString[LBL2]}"....> のようなコード文字列があります。ここでは、コンテンツはローカライズされた文字にバインドされています。この構文は、ダイアログで複数言語のテキストが表示されている場合に使用されます。プロジェクトで 1 つの言語のみを必要とする場合は、表示するテキストを設定します。ダイアログをローカライズする必要がある場合は、ローカリゼーションの構文を使用します。詳細については、「ローカライズ」を参照してください。
TextBox
テキスト ボックス(TextBox)は、ユーザが編集できるフィールドです。Data Standard は入力値を読み取り、他の処理に使用することができます。
<ComboBox Name="MaterialCombo" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>
Button
ボタン(Button)は、ユーザが検索や保存などのイベントを簡単にトリガできるユーザ インタフェース要素です。ボタンでは Command プロパティが必要です。この Command プロパティは、ボタンがクリックされたときにどのアクションが実行されるかを識別します。
<Button Command="{Binding PsCmd[MyCommand]}" Grid.Column="1" Margin="0,5,0,5" Width="80">クリック</Button>
コマンドは、指定した PowerShell 関数とコマンド アクションをリンクできる PsCmd キーワードにバインドされています。CommandParameter="my args" 属性を使用して、関数に引数を渡すことができます。この引数は、関数内で $dsParam 変数として使用できるようになります。
Binding
これらのコンポーネントのいずれかを使用して、Vault のファイル プロパティを制御または変更するには、"{Binding Prop[myProp ].Value}" を理解する必要があります。
バインドを行うことで、CAD または Vault のプロパティに含める値をマッピングできます。たとえば、テキスト ボックスのテキストを Title プロパティにバインドした場合、このテキスト ボックスに何かの値が入力されるたびに、Title プロパティが自動的に更新されます。バインドは、プロパティの変更を自動化する優れた方法です。このため、エンド ユーザが行う作業も少なくなります。
Prop[ ]は、バインドに不可欠な関数です。これにより、ファイルのプロパティ(CAD および Vault)またはそのオブジェクト(フォルダ、アイテム、カスタム オブジェクトなど)にアクセスできます。たとえば、テキスト ボックスを Engineer プロパティにマッピングする場合は、<TextBox text="{Binding Prop[Engineer].Value}"/> と記述します。テキスト ボックスが作成されると、Prop[ ]はこのプロパティの値を返します。テキスト ボックスが更新されるたびに、マッピングされているファイル プロパティに新しい値が記述されたことが Prop[ ]関数に通知されます。
Visual Studio を使用して、.xaml ファイルを編集することができます。Visual Studio では、要素を簡単に配置したり、スペル ミスを防止することができます。
新しいプロジェクトを作成したら、[MainWindow.xaml]タブや[MainWindow.xam.cs]タブなどのタブが表示されます。これらのタブは必要ありません。.xaml ファイルの編集用に付属している環境で十分です。.xaml を編集するために、.xaml ファイルにリンクします。.xaml をプロジェクトに取り込む必要はありません。
[読み込みで問題が発生しました]というエラーが表示されます。
デザイン ウィンドウでダイアログが表示されます。ダイアログ内の領域を選択すると、xaml ファイル内の対応する箇所にジャンプできます。フィールドを挿入または修正します。詳細については、「Data Standard ダイアログ」を参照してください。