单击 2 次鼠标后打开 DataGridComboBoxColumn
DataGridComboBoxColumn opens after 2 mouse clicks
我有一个数据网格,它有如下所示的 DataGridComboBoxColumn。当我打开数据网格时,单击 2 次鼠标会显示组合框。如何在没有点击的情况下加载数据网格时显示组合框。
<DataGrid x:Name="customLoadCaseGrid"
ItemsSource="{Binding Source={StaticResource weightItemCollection}}"
CanUserSortColumns="False" SelectionMode="Single" AutoGenerateColumns="False" Margin="5,5,5,5"
CanUserDeleteRows="False"
Grid.Row="1" Grid.Column="0" Grid.RowSpan="19" Grid.ColumnSpan="20"
CellEditEnding="DataGridCellEditEnding" PreviewKeyDown="DatagridPreviewKeyDown"
BeginningEdit="DatagridBeginningEdit" BorderThickness="2" >
<DataGrid.Columns>
<DataGridComboBoxColumn Header="{lex:LocText Key=fsm_type, Dict=language, Assembly=StabilityGui}" SortMemberPath="FsmTypes" Width="1*" Visibility="Visible">
<DataGridComboBoxColumn.ElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding Path=FsmTypes}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding Path=FsmTypes}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
如果要在 CellTemplate
中显示 ComboBox
,则应将 DataGridComboBoxColumn
替换为 DataGridTemplateColumn
:
<DataGrid ...>
<DataGrid.Resources>
<DataTemplate x:Key="template">
<ComboBox ItemsSource="{Binding Path=FsmTypes, RelativeSource={RelativeSource AncestorType=Window}}" />
</DataTemplate>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn ... CellTemplate="{StaticResource template}" CellEditingTemplate="{StaticResource template}" />
...
</DataGrid.Columns>
</DataGrid>
通过将 IsDropDownOpen
属性 设置为 true
,您可以打开 ComboBoxes
中的 一个 。但是,您不能同时打开多个 ComboBox
。
我有一个数据网格,它有如下所示的 DataGridComboBoxColumn。当我打开数据网格时,单击 2 次鼠标会显示组合框。如何在没有点击的情况下加载数据网格时显示组合框。
<DataGrid x:Name="customLoadCaseGrid"
ItemsSource="{Binding Source={StaticResource weightItemCollection}}"
CanUserSortColumns="False" SelectionMode="Single" AutoGenerateColumns="False" Margin="5,5,5,5"
CanUserDeleteRows="False"
Grid.Row="1" Grid.Column="0" Grid.RowSpan="19" Grid.ColumnSpan="20"
CellEditEnding="DataGridCellEditEnding" PreviewKeyDown="DatagridPreviewKeyDown"
BeginningEdit="DatagridBeginningEdit" BorderThickness="2" >
<DataGrid.Columns>
<DataGridComboBoxColumn Header="{lex:LocText Key=fsm_type, Dict=language, Assembly=StabilityGui}" SortMemberPath="FsmTypes" Width="1*" Visibility="Visible">
<DataGridComboBoxColumn.ElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding Path=FsmTypes}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding Path=FsmTypes}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
如果要在 CellTemplate
中显示 ComboBox
,则应将 DataGridComboBoxColumn
替换为 DataGridTemplateColumn
:
<DataGrid ...>
<DataGrid.Resources>
<DataTemplate x:Key="template">
<ComboBox ItemsSource="{Binding Path=FsmTypes, RelativeSource={RelativeSource AncestorType=Window}}" />
</DataTemplate>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn ... CellTemplate="{StaticResource template}" CellEditingTemplate="{StaticResource template}" />
...
</DataGrid.Columns>
</DataGrid>
通过将 IsDropDownOpen
属性 设置为 true
,您可以打开 ComboBoxes
中的 一个 。但是,您不能同时打开多个 ComboBox
。