इस कोड के साथ क्या गलत है? बटन 1 पर क्लिक करने से संदेश बॉक्स प्रकट नहीं होता है।अवलोकन करने योग्य चयन संग्रह परिवर्तनित घटना फायरिंग नहीं लगती है - क्यों?
public partial class Form1 : Form
{
public ObservableCollection<string> aCollection2 = new ObservableCollection<string>();
myClass mc = new myClass();
public Form1()
{
InitializeComponent();
aCollection2.Add("a");
aCollection2.Add("b");
}
private void button1_Click(object sender, EventArgs e)
{
mc.myCollection = aCollection2;
}
private void button2_Click(object sender, EventArgs e)
{
mc.myCollection.Clear();
}
}
myClass के साथ परिभाषित:
class myClass
{
public ObservableCollection<string> myCollection = new ObservableCollection<string>();
public myClass()
{
myCollection.CollectionChanged += Changed;
}
void Changed(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
MessageBox.Show(myCollection.Count.ToString());
}
}
संपादित करें: जब मैं के साथ एक 3 बटन जोड़ने:
private void button3_Click(object sender, EventArgs e)
{
mc.myCollection.Add("a");
}
यह संदेशबॉक्स प्रदर्शित करता है। और बटन 2 भी करता है। लेकिन बटन 1 पर क्लिक करने के बाद - अब कोई भी आग नहीं लगेगा। कैसे?
संपादित देखें से एक है। यह कुछ मामलों में आग लगती है। – ispiro
@ispiro: बिल्कुल। यह केवल तभी आग लगती है जब आप ** मूल ** 'पर्यवेक्षण योग्यता' को संशोधित करते हैं, न कि इसे बदलने के बाद। – SLaks
संग्रह को पढ़ने के लिए केवल पुन: असाइनमेंट का खुलासा किया और मुझे कई सिरदर्द से बचाया। –