Ich habe ein ComboBox
, die ein CheckBox
umfasst die DataTemplate
ändern, das funktioniert gut, wenn sie auf ihrem eigenen gemacht, aber wenn sie in ein DataGrid
die beweglichen CheckBox
ist nicht anklickbar.WPF CheckBox in ComboBox Datatemplate nicht in Datagrid funktioniert
Arbeits Code:
<ComboBox ItemsSource="{Binding WrapUpHelper.WrapUps}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}"
Width="20" />
<TextBlock Text="{Binding FriendlyDescription}" />
</StackPanel>
<ListBox ItemsSource="{Binding WrapUps}"
Visibility="{Binding Path=IsSelected, Converter={StaticResource BooleanToVisibilityConverter}}"
BorderThickness="0"
Background="Transparent">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}"
Width="20" />
<TextBlock Text="{Binding FriendlyDescription}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Beweis:
Aber wenn sie auf eine DataGrid
diese Logik hinzufügen, statt das Häkchen zum CheckBox
Hinzufügen der ComboBox
schließt mit nichts ausgewählt .
Nichtarbeitscode:
<DataGridTemplateColumn Header="Wrap up" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding WrapUpHelper.WrapUps}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}"
Width="20" />
<TextBlock Text="{Binding FriendlyDescription}" />
</StackPanel>
<ListBox ItemsSource="{Binding WrapUps}"
Visibility="{Binding Path=IsSelected, Converter={StaticResource BooleanToVisibilityConverter}}"
BorderThickness="0"
Background="Transparent">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}" Width="20" />
<TextBlock Text="{Binding FriendlyDescription}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Erhalten Sie irgendein Ereignis durch? Könnte versuchen, 'ClickMode =" Drücken Sie "' zu den CB's –
@ChrisW. Bitte ändere das, um zu antworten, und ich kann es richtig markieren, das erlaubt die 'CheckBoxes' in einem' DataGrid' anzukreuzen, jetzt ist das einzige Problem bei jedem Klick das 'ComboBox' schließt sich. –
Alrighty, PS für den zweiten Teil habe ich immer sowas gemacht wie [dies] (http://stackoverflow.com/questions/3667203/expand-the-combobox-and-its-items-with-it-gets-focus). :) –