Nerede onay kutularını öğeleri içeren bir liste vardır:WPF ListBoxItem seçim sorunu
<ListBox Style="{StaticResource CheckBoxListStyle}" Name="EditListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Click="Checkbox_Click" IsChecked="{Binding Path=IsChecked, Mode=TwoWay}" Content="{Binding Path=DisplayText}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
I having ben onay kutusu veya içeriği tıkladığımda, ebeveyn ListBoxItem seçili almaz olmasıdır. Onay kutusunun yanındaki beyaz alana tıklarsam, ListBoxItem seçili olur.
Kullanmaya çalıştığım davranış, listedeki bir veya daha fazla öğeyi seçebilmemiz ve onay kutularını açıp kapatmak için boşluk çubuğunu kullanabilmenizdir.
Biraz daha bilgi: Bir onay kutusunu tıkladığınızda Yukarıdaki kodda
private void Checkbox_Click(object sender, RoutedEventArgs e)
{
CheckBox chkBox = e.OriginalSource as CheckBox;
}
, e.Handled yanlıştır ve chkBox.Parent boş.
Kent'in cevabı doğru yolu beni indirdi, burada ben ile sona erdi budur: Sana bir liste kutusunda boşluk vurduğunda çünkü varsayılan olarak PreviewKeyDown kullanmak zorunda
<ListBox Style="{StaticResource CheckBoxListStyle}" Name="EditListBox" PreviewKeyDown="ListBox_PreviewKeyDown">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Path=IsChecked, Mode=TwoWay}" />
<TextBlock Text="{Binding DisplayText}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
, bu hariç her şeyi seçimini kaldırır en son seçilen öğe. Ile başlamak CheckBox
dışında içerik koymak için
İlk başta böyle yaptım. Hata, onay kutusu durumlarının liste kontrol seçim durumuna bağlı olması, bu da onay kutularını içeren liste denetimi için normal bir davranış olmamasıdır. –