如何解决单击两次鼠标后,DataGridComboBoxColumn将打开
我有一个数据网格,它具有如下的DataGridComboBoxColumn。当我打开datagrid时,单击两次鼠标将显示comBox。无需单击即可加载datagrid时如何显示组合框。
<DataGrid x:Name="customloadCaseGrid"
ItemsSource="{Binding Source={StaticResource weightitemCollection}}"
CanUserSortColumns="False" SelectionMode="Single" AutoGenerateColumns="False" Margin="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>
解决方法
如果要在ComboBox
中显示CellTemplate
,则应将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>
您可以通过将ComboBoxes
属性设置为IsDropDownOpen
来打开true
的一个。不过,您不能同时打开多个ComboBox
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。