ब्रूट बल:
- अपने CollectionViewSource
- कॉल ताज़ा से प्रत्येक बच्चे आइटम
- ले लो ListCollectionView के लिए प्रत्येक PropertyChanged घटना के लिए हैंडलर देते हैं।
संपादित करें:
कोड 1 के लिए, 2 अपने में रहते हैं कोड-पीछे।
# 1 के लिए, आप की तरह कुछ करना चाहते हैं:
private void Source_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
foreach(SomeItem item in e.NewItems)
{
item.PropertyChanged += new PropertyChangedEventHandler(_SomeItem_PropertyChanged);
}
break;
....
**HANDLE OTHER CASES HERE**
....
}
}
# 2 के लिए, अपने CollectionChanged हैंडलर में, आप की तरह कुछ करना होगा:
private void _SomeItem_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
ListCollectionView lcv = (ListCollectionView)(CollectionViewSource.GetDefaultView(theListBox.ItemsSource));
lcv.Refresh();
}
EDIT2: हालांकि, में इस मामले में, मैं दृढ़ता से सुझाव देता हूं कि आप ListCollectionView.NeedsRefresh भी जांचें और सेट होने पर ही ताज़ा करें। आपकी संपत्तियों में बदलाव होने पर पुन: क्रमबद्ध करने का कोई कारण नहीं है जो इस प्रकार को प्रभावित नहीं करता है।
तो, आप अपने ओसी एक लिस्टबॉक्स के लिए बाध्य कर रहे हैं और लिस्टबॉक्स पर sortdescription है? – apandit
यह सही है। जब एक बच्चे की वस्तु बदल जाती है, तो मैं इस बदलाव को प्रतिबिंबित करना चाहता हूं। – Nate