खाली करें मेरे पास एक साधारण विंडोज़ फॉर्म है जिसमें अन्य घटक, ListView
ऑब्जेक्ट list
नामक ऑब्जेक्ट है। फॉर्म पर, एक बटन मुझे list.Items.Clear()
के साथ क्लिक पर सूची को खाली करने में सक्षम बनाता है। यह ठीक काम करता है।एक सूची दृश्य
अब मेरे पास एक अलग वर्ग Test
है, जिसका विधि update()
फ़ॉर्म के बाहर कुछ घटनाओं पर कॉल किया जाता है। फॉर्म के निर्माण पर, मैं SetList
विधि का उपयोग कर सूची का संदर्भ पास करता हूं। डीबग मोड में, update()
उन घटनाओं पर कॉल किया जाता है जिन्हें मैं ट्रिगर करता हूं, और इसकी सामग्री निष्पादित होती है, लेकिन मेरी सूची साफ़ नहीं होती है।
यह क्यों है? संदर्भ ठीक से सेट है, मैंने चेक किया।
class Test
{
private ListView list;
public void setList(ListView list)
{
this.list = list;
}
public void update()
{
this.list.Items.Clear();
}
}
जब मैं अपने सूची पर करीब देखो अद्यतन में breakpoints डाल() के द्वारा संशोधित किया जा रहा है, सूची साफ किया जाता है और साफ रहता है। यह वास्तव में ऐसा लगता है कि यह एक और सूची संशोधित की जा रही है, लेकिन मेरे पास केवल एक है और इस पर कोई नया नहीं है ... ???? अगर यह काम नहीं करता
public void update()
{
this.list.Items.Clear();
this.list.Update(); // In case there is databinding
this.list.Refresh(); // Redraw items
}
, यह स्पष्ट है कि आप list
वस्तु का एक और उदाहरण संशोधित कर रहे हैं:
यदि डेटा स्रोत के माध्यम से बाध्य आइटम 'list.DataSource = null; सूची। डेटाबाइंड(); ' – sll
मेरा अनुमान होगा कि यह नहीं है। मैं हमेशा इस विधि को जोड़ता हूं .list.Items। – Jerome
जोड़ें इस तरह के कोड के साथ 95% बाधा यह है कि आप किसी अन्य फॉर्म इंस्टेंस की सूचीदृश्य को साफ़ कर रहे हैं, जो कि दिखाई नहीं दे रहा है क्योंकि आपने इसे उपयोग करने के बजाय इसे नया बनाया है दृश्य प्रपत्र उदाहरण। –