Mam DataGridComboBoxColum w DataGrid. Chciałbym móc raz kliknąć komórkę i rozwinąć listę rozwijaną combobox. Obecnie muszę kliknąć kilka razy.DataGridComboBoxColumn - Automatyczne rozwijanie jednym kliknięciem
<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>
Czy potrzebujesz 'DataGrid', aby przejść do trybu edycji, czyli podniesienie BeginningEditEvent? – XAMeLi
Nigdy nie wychowuję początkuedytetu. Czy muszę? –
Pierwsze kliknięcie na komórce ustawia fokus na komórkę i (być może) wybiera ją (zależy od SelectionMode 'DataGrid'), drugie kliknięcie pokazuje EditingElement i to jest kiedy podniesiony został BeginningEditEvent (przez' DataGrid '). Rozumiem, że nie obsługujesz tego zdarzenia, a twoja logika zależy od tego, czy 'DataGrid' jest w trybie edycji (tj. Czy IsEditingCurrentCell == true czy IsEditingRowItem == true), prawda? – XAMeLi