【问题标题】:DataGridComboBoxColumn opens after 2 mouse clicks单击鼠标 2 次后打开 DataGridComboBoxColumn
【发布时间】:2020-09-01 10:05:19
【问题描述】:

我有一个数据网格,它有如下所示的 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>

【问题讨论】:

    标签: c# wpf datagrid datagridcomboboxcolumn


    【解决方案1】:

    如果您想在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

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 1970-01-01
      • 2023-03-09
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2012-08-28
      • 1970-01-01
      相关资源
      最近更新 更多