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