2010-04-09 20 views
30

मैंने दो रेडियोबटन (वजन और ऊंचाई) बनाया। मैं दो श्रेणियों के बीच स्विच करूँगा। लेकिन वे एक ही सूची बॉक्स नियंत्रक (सूची बॉक्स 1 और सूची बॉक्स 2) साझा करते हैं।सभी सूची बॉक्स आइटम कैसे निकालें?

सभी ListBox आइटम सरल स्पष्ट करने के लिए किसी भी अच्छे पद्धति है? मुझे ListBox के लिए removeAll() नहीं मिला। मुझे अपनी जटिल बहु-रेखा शैली पसंद नहीं है जिसे मैंने यहां पोस्ट किया था।

private void Weight_Click(object sender, RoutedEventArgs e) 
    { 
     // switch between the radioButton "Weith" and "Height" 
     // Clear all the items first 
     listBox1.Items.Remove("foot"); 
     listBox1.Items.Remove("inch"); 
     listBox1.Items.Remove("meter"); 
     listBox2.Items.Remove("foot"); 
     listBox2.Items.Remove("inch"); 
     listBox2.Items.Remove("meter"); 

     // Add source units items for listBox1 
     listBox1.Items.Add("kilogram"); 
     listBox1.Items.Add("pound"); 

     // Add target units items for listBox2 
     listBox2.Items.Add("kilogram"); 
     listBox2.Items.Add("pound"); 
    } 

    private void Height_Click(object sender, RoutedEventArgs e) 
    { 
     // switch between the radioButton "Weith" and "Height" 
     // Clear all the items first 
     listBox1.Items.Remove("kilogram"); 
     listBox1.Items.Remove("pound"); 
     listBox2.Items.Remove("kilogram"); 
     listBox2.Items.Remove("pound"); 

     // Add source units items for listBox1 
     listBox1.Items.Add("foot"); 
     listBox1.Items.Add("inch"); 
     listBox1.Items.Add("meter"); 

     // Add target units items for listBox2 
     listBox2.Items.Add("foot"); 
     listBox2.Items.Add("inch"); 
     listBox2.Items.Add("meter"); 
    } 
+2

मैं मैट Dearing के एक बहुत जवाब पसंद है। यह केवल विशिष्ट आइटमों की तुलना में, इस विशिष्ट उपयोग के लिए बेहतर प्रोग्रामिंग तकनीक की तरह दिखता है। क्लीयर() विधि। –

उत्तर

70

विनफॉर्म और वेबफॉर्म तरीका के समान नहीं है?

listBox1.Items.Clear(); 
+0

यह एक गरीब जवाब है क्योंकि आप को समझाने के लिए कि वह 'का उपयोग किया जा नहीं करना चाहिए पहली जगह में इस तरह Items.Add' में विफल रहा है। मैट डियरिंग के जवाब को एक बेहतर समाधान के लिए देखें। –

+2

सवाल यह है कि "क्या सभी सूची बॉक्स आइटम को साफ़ करने के लिए कोई अच्छी विधि है?" यह एक आसान सवाल है, इसका एक आसान जवाब है! मैट जवाब सवाल के लिए है "क्या मैं यहाँ सही काम कर रहा हूं?" – balexandre

+15

यह समुदाय की ज़िम्मेदारी की भावना के लिए आता है। विचार करें: एक आठ वर्षीय मेरे पास एक भारित बंदूक (खिलौना नहीं) पकड़ता है। वह स्पष्ट रूप से ध्यान नहीं दे रहा है कि वह कहां इंगित कर रहा है। वह मुझसे पूछता है कि इसे कैसे शूट करें। इस मामले में "बस इस ट्रिगर को खींचें" एक खराब जवाब है। एक बेहतर जवाब बंदूक सुरक्षा की व्याख्या करना होगा। आठ साल के लिए सबसे अच्छा जवाब शायद बंदूक लेना और अपने माता-पिता को ढूंढना होगा। दांव यहां बहुत कम हैं लेकिन सिद्धांत समान है: ** खराब लिखित कोड को प्रोत्साहित करने से वास्तविक क्षति और वास्तविक दर्द होता है। ** यह हमारे लिए वास्तविक लागत है। –

2

आपको Clear() विधि का उपयोग करने में सक्षम होना चाहिए।

2
while (listBox1.Items.Count > 0){ 
    listBox1.Items.Remove(0); 
} 
+1

क्या यह अनिवार्य रूप से ListBox.Items.Clear() करता है? – Josh

8

मुझे लगता है कि यह बेहतर होगा वास्तव में, एक डेटा स्रोत के लिए अपने listboxes बाध्य करने के बाद से ऐसा लगता है कि आप प्रत्येक लिस्टबॉक्स के लिए एक ही तत्व जोड़ रहे।

private List<String> _weight = new List<string>() { "kilogram", "pound" }; 
    private List<String> _height = new List<string>() { "foot", "inch", "meter" }; 

    public Window1() 
    {    
     InitializeComponent(); 
    }   

    private void Weight_Click(object sender, RoutedEventArgs e) 
    { 
     listBox1.ItemsSource = _weight; 
     listBox2.ItemsSource = _weight; 
    } 

    private void Height_Click(object sender, RoutedEventArgs e) 
    { 
     listBox1.ItemsSource = _height; 
     listBox2.ItemsSource = _height; 
    } 
+1

आप 1 लाइन में भी कर सकते हैं: listBox1.ItemsSource = listBox2.ItemsSource = _weight; :) – balexandre

2

.cs फ़ाइल में निम्न कोड लिखें: एक साधारण उदाहरण कुछ इस तरह होगा

ListBox.Items.Clear();

0

मैं इस रास्ते पर बना है, और मेरे लिए ठीक से काम:

if (listview1.Items.Count > 0) 
     { 
      for (int a = listview1.Items.Count -1; a > 0 ; a--) 
      { 
       listview1.Items.RemoveAt(a); 
      } 
       listview1.Refresh(); 

     } 

की व्याख्या: का उपयोग कर "साफ()" केवल आइटम मिटा देता है, , वस्तु से तो निकाल देता है नहीं है को दूर करने के RemoveAt() का उपयोग स्थिति शुरुआत के एक आइटम सिर्फ दूसरों realocate, तो न खत्म होने वाली नहीं डी प्रभावित दूसरों की स्थिति, अपने एक से निकालने [यदि u आइटम [0], आइटम को निकालने के [1] [0] एक नया आंतरिक घटना को ट्रिगर में बदल जाता है] स्टैक व्यवहार, इस तरह हम वस्तु को रीसेट करने, सभी वस्तुओं पर ढेर कर सकते हैं।

+0

मुझे समझ में नहीं आ रहा है कि आप एक सूची बॉक्स को साफ़ करने के बारे में क्यों पूछ रहे हैं, फिर भी आपका उत्तर एक सूचीदृश्य का उपयोग कर रहा है। – Burgo855

0
  • वीबी ListBox2.DataSource = कुछ भी नहीं
  • सी # ListBox2.DataSource = बातिल;
संबंधित मुद्दे