मैं एक लिस्टबॉक्स जहां आइटम चेक बॉक्स शामिल है:WPF ListBoxItem चयन समस्या
<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>
समस्या मैं आ रही है कि जब मैं चेकबॉक्स या उसकी सामग्री पर क्लिक करें, माता पिता ListBoxItem चयनित नहीं हो रहा है। यदि मैं चेकबॉक्स के बगल में स्थित सफेद स्थान पर क्लिक करता हूं, तो ListBoxItem चयनित होता है।
जिस व्यवहार को मैं प्राप्त करने का प्रयास कर रहा हूं वह सूची में एक या कई आइटम चुनने और चेकबॉक्स को चालू और बंद टॉगल करने के लिए स्पेसबार का उपयोग करने में सक्षम होना है।
कुछ अधिक जानकारी:
private void Checkbox_Click(object sender, RoutedEventArgs e)
{
CheckBox chkBox = e.OriginalSource as CheckBox;
}
ऊपर जब मैं एक चेकबॉक्स पर क्लिक कोड में, e.Handled गलत है और chkBox.Parent रिक्त है।
केंट के जवाब मुझे नीचे सही रास्ते में कहें, यहाँ क्या मैं के साथ समाप्त हो गया है:
<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>
मैं PreviewKeyDown उपयोग करने के लिए है क्योंकि डिफ़ॉल्ट रूप से जब आप एक सूची बॉक्स में स्पेस बार हिट बना, यह के अलावा सब कुछ deselects सबसे हाल ही में चयनित आइटम।
जिस तरह से मैंने इसे पहले किया था। दोष यह है कि चेकबॉक्स राज्य सूची नियंत्रण चयन स्थिति से बंधे हैं, जो चेकबॉक्स वाले सूची नियंत्रण के लिए सामान्य व्यवहार नहीं है। –