2011-12-12 18 views
7

पर समर्थित नहीं है I उपयोगकर्ता आलसी "लोड लोड" आइटम को लागू करने का प्रयास कर रहा है जब उपयोगकर्ता सूची बॉक्स के नीचे जाता है, लेकिन हर बार जब मैं सूची बॉक्स में नए आइटम जोड़ने की कोशिश करता हूं तो मुझे परिणाम मिलते हैं यह:ऑपरेशन केवल पढ़ने-योग्य संग्रह C# wp7

"ऑपरेशन केवल पढ़ने के संग्रह पर समर्थित नहीं है।"

मैंने पहले ही फ़ोरम से ब्लॉग पर कई समाधानों की कोशिश की है, कोई भी काम नहीं कर रहा है। मैं इस समस्या के पीछे तर्क को भी समझ नहीं सकता जो मेरे लिए थोड़ा अजीब लगता है।

मैं जो कर रहा हूं वह मूल रूप से वस्तुओं की एक सूची लोड कर रहा है और मेरे सूची बॉक्स के आइटम्स के रूप में असाइन कर रहा है।

wineFilterListBox.ItemsSource = wines; 

उपयोगकर्ता सूची के नीचे हो जाता है जब, मैं और अधिक आइटम जोड़ने

public ObservableCollection<Wine> wines; 
... 

    if (atBottom) 
    { 
     int Count = page.wineFilterListBox.Items.Count; 
     int end = Count + 10; 
     for (int i = Count; i < end; i++) 
     { 
      page.LoadWineList(Count); 
     } 
    } 
... 

    private void LoadWineList(int Count = 1) 
    { 
    ... 
     wineFilterListBox.Items.Add(wines); 
    } 

उत्तर

9

(सिर्फ WP7 के लिए चहचहाना अनुप्रयोग की तरह) आप ItemSource केवल पढ़ने के लिए Items संग्रह हो जाता है का उपयोग करते हैं। ऐसा लगता है कि आपको ListBoxItems संपत्ति के बजाय संग्रह में डेटा जोड़ना होगा। ItemsControl.ItemSource Property

विशेष रूप से, इस खंड:

MSDN देखें

जब ItemsSource संपत्ति सेट है, आइटम संग्रह किया जाता है केवल पढ़ने के लिए और निश्चित-आकार।

आप किसी ऑब्जेक्ट को ItemsSource स्थापित करना चाहिए कि INotifyCollectionChanged इंटरफ़ेस लागू करता है ताकि में परिवर्तन:

के बाद से अपने संग्रह एक `ObservableCollection 'है सीधे wines संकलन में आइटम जोड़ कर देखें, संग्रह आइटम नियंत्रण में दिखाई देगा। ObservableCollection (टी) वर्ग ऐसी वस्तु को परिभाषित करता है।

+0

धन्यवाद कर सकते हैं। आखिरी पंक्ति को हटाकर यह किया। "वाइनफिल्टर लिस्टबॉक्स.इटम। जोड़ें (वाइन);" मैंने इतने सारे समाधानों की कोशिश की कि वे ऑब्जर्जेबल कोलेक्शन का उपयोग करते समय मूलभूत चूक गए। सूची सूची को अपडेट करने के लिए बस वाइन सूची में जोड़ना पर्याप्त था। –

+0

@ ब्रूनोन्यून्स: कोई समस्या नहीं! यह हमेशा छोटी चीजें हैं जो हमें प्राप्त करती हैं :-) –

0

FYI करें, अगर आप जानबूझकर न ObservableCollection उपयोग करने के लिए ItemsSource सेट करना चाहते हैं आप Wine मैन्युअल रूप से अपने wineFilterListBox.Items

for (int i = Count; i < 10; i++) 
{ 
    wineFilterListBox.Items.Add(new Wine()); 
} 

इस कारण के लिए wineFilterListBox.Items जोड़ नहीं बनने के लिए केवल पढ़ने के लिए