2009-06-11 8 views
5

मैं संग्रह दृश्य में परिवर्तनों की निगरानी करना चाहता हूं लेकिन संग्रहChanged ईवेंट संरक्षित है। मुझे यह कैसे करना चाहिए? निश्चित रूप से इस घटना की सदस्यता लेने का एक तरीका होना चाहिए - सूची नियंत्रण किसी भी तरह से ऐसा करना चाहिए।CollectionView.CollectionChanged संरक्षित क्यों है?

मैं स्रोत कोलेक्शन को INOTifyCollectionChanged में डाल सकता हूं और वहां एक ईवेंट जोड़ सकता हूं, लेकिन यह अनजाने में गन्दा लगता है।

+0

ठीक है, जाहिर है, यह जानबूझकर सार्वजनिक पहुंच से "छुपा" था ... मुझे नहीं पता कि वास्तव में क्यों, लेकिन आप जो करने की कोशिश कर रहे हैं वह शायद वह सटीक चीज है जिसे वे रोकना चाहते हैं;) –

उत्तर

1

आप इसके बजाय एक पर्यवेक्षण चयन का उपयोग क्यों नहीं कर रहे हैं?

+2

क्योंकि मैं फ़िल्टरिंग कर रहा हूं संग्रह। – Grokys

+1

... और CurrentItem कार्यक्षमता की आवश्यकता है ताकि संग्रह दृश्य समझ में आ सकें। – Grokys

3

... सूची नियंत्रण किसी भी तरह से ऐसा करना चाहिए।

मैं स्रोत कोलेक्शन को INOTifyCollectionChanged में डाल सकता हूं और वहां एक ईवेंट जोड़ सकता हूं, लेकिन अनजाने में गन्दा लगता है।

असल में, यह बिल्कुल ठीक है कि सूची नियंत्रण कैसे करता है।

((INotifyCollectionChanged)_items).CollectionChanged += new NotifyCollectionChangedEventHandler(OnItemCollectionChanged); 

आप शायद इंटरफेस के रूप में अपने CollectionViews का पर्दाफाश करने के लिए हैं, ICollectionView, जो अपने आप CurrentItem तरह CollectionView गुण प्रदान करने के साथ ही INotifyCollectionChanged विरासत: यह ItemsControl के स्रोत कोड (http://www.dotnetframework.org/ के माध्यम से पाया जाता है) से है।

संबंधित मुद्दे