ダイナミック プロパティを表示し、XAML ファイルを変更せずに、Vault のカテゴリに割り当てられているプロパティを編集することができます。
Vault のカテゴリに新しいプロパティを追加すると、これらのプロパティは自動的に、Data Standard ダイアログまたはタブが表示され、次に表示されます。
ダイナミック プロパティの 2 つの柱がある XAML DataGrid コントロールによって表されます。 最初の列は読み込み専用で、プロパティの名前を表示します。2 番目の列は、異なるタイプの異なるコントロール DataPicker 日付タイプのプロパティについては、 値の定義済み一覧でプロパティの たとえば、コンボ ボックス( )が表示されるため、より複雑になります。
データグリッド コントロール
ダイアログには、ダイナミック プロパティ(Dynamic Properties)コントロールを追加するには、次の行が必要です。
... <DataGrid x:Name="DSDynamicCategoryProperties" AutoGenerateColumns="False" HeadersVisibility="Column" ItemsSource="{Binding DynamicProperties}" ScrollViewer.CanContentScroll="False" HorizontalGridLinesBrush="WhiteSmoke" VerticalGridLinesBrush="WhiteSmoke"> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Name}" SortDirection="Ascending" Width="140" IsReadOnly="True" > <DataGridTextColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding DataContext.UIString[LBL64], RelativeSource={RelativeSource AncestorType=DataGrid}}"/> </DataTemplate> </DataGridTextColumn.HeaderTemplate> </DataGridTextColumn> <DataGridTemplateColumn CellStyle="{StaticResource DynamicDataGridCellStyle}" Width="*" > <DataGridTemplateColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding DataContext.UIString[LBL65], RelativeSource={RelativeSource AncestorType=DataGrid}}"/> </DataTemplate> </DataGridTemplateColumn.HeaderTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> ...
2 番目の列は スタイル(「 CellStyle = {StaticResourceDynamicDataGridCellStyle} ) は、リソースのセクションでは、XAML ファイルに追加する必要のあるを使用します。 これは、すべての異なるコントロールになります。
... <Window.Resources> <Style x:Key="DynamicDataGridCellStyle" TargetType="{x:Type DataGridCell}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <ComboBox ItemsSource="{Binding ListValues}" Text="{WPF:ValidatedBinding Value}" IsEditable="True"></ComboBox> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/> <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> </Trigger> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter Property="BorderBrush" Value="{DynamicResource {x:Static DataGrid.FocusBorderBrushKey}}"/> </Trigger> <DataTrigger Binding="{Binding ListValues.Count}" Value="0"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <TextBox Text="{WPF:ValidatedBinding Value}"></TextBox> </ControlTemplate> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding Typ}" Value="DateTime"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <DatePicker SelectedDate="{WPF:ValidatedBinding Value, StringFormat='dd/MM/yyyy'}"/> </ControlTemplate> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding Typ}" Value="Bool"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <ComboBox Text="{WPF:ValidatedBinding Value}"> <system:Boolean>True</system:Boolean> <system:Boolean>False</system:Boolean> </ComboBox> </ControlTemplate> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> ...
DynamicProperties XAML バインド
前の例では、次のコードを見てください。
ItemsSource = " {Binding DynamicProperties} "
このコードはカテゴリに割り当てられている iProperty 要素のリストを取得します。 iProperty オブジェクトなどのバインドに使用できるこれらのメンバーがあります。
DynamicPropertiesCategory XAML バインド
バインドを返します。 DynamicProperties、Vault カテゴリを最初に指定する必要があります。 データ標準に付属の既定の実装では、DynamicPropertiesCategory コンボ ボックスで指定します。
... <ComboBox Name="Categories" ItemsSource="{Binding PsList[GetCategories]}" SelectedIndex="0" DisplayMemberPath="Name" SelectedItem="{Binding DynamicPropertiesCategory}" Text="{Binding Prop[_Category].Value}" Grid.Row="0" Grid.Column="1" IsEnabled="{Binding IsNewEntryDialog}"> </ComboBox> ...
(読み込 = {Binding PsList [getcategories] } ")GetCategories PowerShell 関数によって返される 「使用可能な Vault のカテゴリーが一覧表示されます。 既定の実装では、このすべてのカテゴリを返します。特定のカテゴリ(たとえば、ドキュメント タイプに基づいて)する必要がある場合にのみ、この機能を調整する必要があります。
コンボ ボックスから選択されたカテゴリは DynamicPropertiesCategory を設定します。
( SelectedItem = "{Binding DynamicPropertiesCategory}" )
ダイナミック プロパティ ラベルの詳細については、ここをクリックしてください。