2011-05-05 17 views
7

मैं चाहता था कि चेकलिस्टबॉक्स मैं विंडोज फॉर्म के साथ उपयोग करता था।डब्ल्यूपीएफ, लिस्टबॉक्स के आइटम टेम्पलेट में चेकबॉक्स है, लेकिन चेकबॉक्स ऐसा नहीं लगता है कि

<ListBox> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <CheckBox Content="{Binding Name}"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 

पहले यह काम करने लग रहा था, लेकिन कई समस्याएं थीं। संक्षेप में, यह सिर्फ चेकबॉक्स की तरह काम करता है, चेकबॉक्स एक आइटम है, बजाय वास्तविक आइटम पर तैर रहा है।

मेरा मतलब है, (1) चेकबॉक्स के टेक्स्ट पर क्लिक करने से ListBox आइटम का चयन नहीं होगा, (2) ऊपर और नीचे कुंजी दबाकर चेकबॉक्स पर ध्यान केंद्रित नहीं किया जाता है। इसे ध्यान केंद्रित करने के लिए मुझे चेकबॉक्स पर क्लिक करना होगा। मैंने समाधान के लिए Google की खोज की है लेकिन साफ ​​समाधान नहीं थे। क्या मैं बहुत ज्यादा चाहता हूं?

मैं सिर्फ CheckedListBox की behavour ...

मैं (1) चेकबॉक्स का PreviewMouseDown घटना से निपटने और मैन्युअल रूप से आइटम का चयन करके चारों ओर काम करना चाहते हैं। यह साफ प्रतीत नहीं होता है।

उत्तर

9

ऐसा इसलिए है, क्योंकि आपका CheckBoxListBox में है। इसे सूची की एक वस्तु के रूप में इसकी सभी सुविधाओं के साथ संभाला जाता है।

यदि आप केवल चेकबॉक्स की एक सूची बनाना चाहते हैं और सूची के चयन-तर्क की आवश्यकता नहीं है, तो ListBox के बजाय ItemsControl का उपयोग करें। उपयोग बराबर है। यदि आप अपनी चेकबॉक्स सूची स्क्रॉल करने योग्य चाहते हैं, तो आइटम नियंत्रण को लपेटने के लिए स्क्रॉलव्यूअर का उपयोग करें।

<ScrollViewer> 
    <ItemsControl ItemsSource="{Binding YourItemsCollection">  
     <DataTemplate>     
      <CheckBox Content="{Binding Name}"/> 
     </DataTemplate> 
    </ItemsControls> 
</ScrollViewer> 
0

जुड़ा हुआ सवाल (WPF ListBoxItem selection problem) के लिए चयनित उत्तर एक साफ समाधान प्रदान करता है! एक ही परिदृश्य के साथ फंस गया था -> आपका प्रश्न मिला -> उपाय के साथ दूसरा पाया। HTH!

संबंधित मुद्दे