微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单击两次鼠标后,DataGridComboBoxColumn将打开

如何解决单击两次鼠标后,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 举报,一经查实,本站将立刻删除。