동적 특성 표시 및 편집할 수 있는 특성이 지정된 Vault 범주 없이 XAML 파일을 수정합니다.
새 특성을 추가할 때 Vault 범주, 이러한 특성이 자동으로 다음 번에 Data Standard 대화상자 또는 탭이 표시됩니다.
동적 특성이 표시되는 DataGrid
컨트롤 두 개의 열이 있습니다. 첫 번째 열은 읽기 전용 특성 이름을 표시합니다. 두 번째 열은 보다 복잡한 있기 때문에 다른 컨트롤을 표시하려면 서로 다른 유형 (예: ComboBox 특성에 대해 미리 정의된 값 리스트, DataPicker 특성의 유형 날짜).
동적 특성 추가 제어 대화상자에서 다음 선이 필요합니다.
...
<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>
...
두 번째 열은 스타일 (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
이 코드 행은 이전 예제:
ItemsSource="{Binding DynamicProperties}"
이 코드는 범주에 할당된 IProperty
요소 리스트를 가져옵니다. IProperty
객체 등을, 이러한 부재에 사용할 수 있는 바인딩:
ListValues
- 미리 정의된 값 리스트가 있는 특성에 사용됩니다.Name
- 특성 이름입니다. 이 값은 첫 번째 열 수 있습니다.Value
– 가져오기 및 특성 값을 설정합니다.DynamicProperties
모든 특성을 지정할 범주를 선택합니다. 반면, CAD, 매핑된 특성 반환됩니다. 이는 CAD 용 데이터 표준 직접 Vault 특성을 변경할 수 없습니다. 변경 사항이 Vault 매핑을 통해 수행됩니다.DynamicPropertiesCategory
DynamicProperties
바인딩이 무언가를 반환하려면 먼저 Vault 범주를 지정해야 합니다. Data Standard와 함께 제공되는 기본 구현에서 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>
...
사용 가능한 Vault 범주 리스트 (ItemsSource="{Binding PsList[GetCategories]}")
는 PowerShell 함수 GetCategories
에 의해 반환됩니다. 기본 구현, 이 아니라 모든 범주를 반환합니다. 특정 범주 경우에만 사용할 수 있습니다 (예: 문서 유형) 을 기준으로 이 기능을 조정할 수 있습니다.
선택한 범주가 콤보 상자에 DynamicPropertiesCategory 설정합니다.
(selecteditem="{binding-dynamicpropertiescategory}")
동적 특성 레이블에 대한 자세한 내용을 보려면 여기를 클릭하십시오.