【发布时间】:2011-12-23 23:19:57
【问题描述】:
我在 DataGrid 中有一个 DataGridComboBoxColum。 我希望能够一次单击单元格并下拉组合框。目前我必须点击多次。
<DataGrid AutoGenerateColumns="False" Height="148" HorizontalAlignment="Left" Margin="48,85,0,0" Name ="dg_display" VerticalAlignment="Top" Width="645" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding}" SelectionChanged="DgDisplaySelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="True" Header="Symbol" Binding="{Binding Symbol}" />
<DataGridTextColumn IsReadOnly="True" Header="Company ID" Binding="{Binding CompanyID}" />
<DataGridComboBoxColumn IsReadOnly="False" Header="Sector" SelectedValueBinding="{Binding Sector}" DisplayMemberPath="{Binding [0]}" Visibility="Visible" >
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding SectorList}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding SectorList}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
您是否需要
DataGrid才能进入编辑模式,即提高BeginningEditEvent? -
我从不提出开始编辑事件。我需要吗?
-
第一次单击单元格将焦点设置在单元格上并(可能)选择它(取决于
DataGrid的 SelectionMode),第二次单击显示 EditingElement 并且此时开始编辑事件被提出(由DataGrid)。所以我知道您没有处理此事件,您的逻辑也不取决于DataGrid是否处于编辑模式(即 IsEditingCurrentCell == true 还是 IsEditingRowItem == true),对吗? -
谢谢,很有帮助。