<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33531.aspx</link><pubDate>Wed, 11 Jul 2007 20:59:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33531</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33531.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33531</wfw:commentRss><description>Δυστυχώς το παράτησα. Δεν βόλεψε τελικά. Ακόμα μαι με αυτόν τον τρόπο έπρεπε να επέμβω στην δημιουργία κάθε αντικειμένου πράγμα που δεν με βόλευε με τον τρόπου είναι ήδη φτοιαγμένα αυτά.&lt;br&gt;&lt;br&gt;Σας ευχαριστώ για τις απαντήσεις πάντως. &lt;br&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33389.aspx</link><pubDate>Thu, 05 Jul 2007 01:11:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33389</guid><dc:creator>infoCENTER</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33389.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33389</wfw:commentRss><description>&lt;P&gt;Υπάρχει τρόπος να κάνεις αυτό που θες με events. Επειδή το CollectionBase δεν έχει events θα χρησιμοποιήσουμε ένα άλλο control. BindingSource. Αυτό έχει αυτά που χρειαζόμαστε. Θα το χρησιμοποιήσουμε ως εξής.&lt;/P&gt;
&lt;P&gt;Dim withevents BS as new BindingSource&lt;/P&gt;
&lt;P&gt;BS.Datasource=MyCollection&lt;/P&gt;
&lt;P&gt;Μέχρι εδώ καλά. Αν τώρα περάσει ένα καινούριο object μέσα στο collection ή δiαγραφεί μπορούμε χρησιμοποιώντας το BindingSource να το πιάσουμε.&lt;/P&gt;
&lt;P&gt;BS.Add(myObject)&lt;/P&gt;
&lt;P&gt;Το πρόβλημα είναι όταν αλλάξει κάποιο Property. Εκεί θα πρέπει το Object να υλοποιήσει το INotifypropertyChange κάτι που όπως είπες δεν μπορείς να το κάνεις. Για να το ξεπεράσεις και αυτό θα κάνεις το εξής&lt;/P&gt;
&lt;P&gt;Dim xObject as myObject&lt;/P&gt;
&lt;P&gt;xObject=CType(BS.Current,myObject)&lt;/P&gt;
&lt;P&gt;Μετά γράψε κώδικα στο Event του BindingSource CurrentItemChange ή ListChanged.&lt;/P&gt;
&lt;P&gt;Οποιαδήποτε αλλαγή κάνεις στο myObject θα δεις ότι θα γίνονται fire τα παραπάνω events οπότε από εκεί μπορείς να πιάσεις αυτά που θες χωρίς να αλλάξεις τον κώδικα τον Objects που ήδη έχεις.&lt;/P&gt;
&lt;P&gt;Αν σε προβλημάτισα λίγο διάβασε για το BindingSource control και αν έχεις κάποια απορία τα ξαναλέμε.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33381.aspx</link><pubDate>Wed, 04 Jul 2007 21:17:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33381</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33381.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33381</wfw:commentRss><description>&lt;p&gt;Αν έχεις τέτοια constraints γιατί δεν τα λες από την αρχή να ξέρουμε κι εμείς τι γίνεται;&lt;/p&gt;&lt;p&gt;Κατά τα άλλα εμείς απλά δίνουμε ιδέες και εσύ επιλέγεις πια εφαρμόζεται καλύτερα στην περίπτωσή σου. Οπότε μην περιμένεις έτοιμη τη λύση! &lt;/p&gt;&lt;p&gt;Πάντως δεν νομίζω ότι μπορείς να πάρεις με κάποιο τρόπο event ότι άλλαξε ένα field.&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33380.aspx</link><pubDate>Wed, 04 Jul 2007 21:03:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33380</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33380.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33380</wfw:commentRss><description>Κατ' αρχήν να πώ ότι αυτό που προσπαθώ να κάνω αποτελεί προσθήκη σε ήδη υπάρχοντα κώδικα ο οποίος δεν πρέπει να υποστεί εκτεταμένες αλλαγές(για διάφορους λόγους ανωτέρας βίας)&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Dimitris Papadimitriou:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Τότε λοιπόν, έχουμε και λέμε:&lt;/p&gt;&lt;p&gt;1) Καταρχήν θα υλοποιήσεις το INotifyPropertyChange interface στα αντικείμενα που προσθέτεις στο collection. Οδηγίες &lt;a href="http://msdn2.microsoft.com/en-us/library/ms743695.aspx" target="_blank"&gt;εδώ&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;2) Στο Add του collection (θα κάνεις όλα αυτά που είπα πριν για να έχεις έλεγχο για το τι γίνεται στο Add) θα κάνεις το εξής:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.ComponentModel.INotifyPropertyChanged notifyObject = (System.ComponentModel.INotifyPropertyChanged)this;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyObject.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(notifyObject_PropertyChanged);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (InvalidCastException)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("Items in this colleciton must implement the INotifyPropertyChanged interface");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;Η notifyObject_PropertyChanged είναι η method που θα καλείται κάθε φορά που αλλάζει κάτι σε κάποιο αντικείμενο και σε αυτή εσύ θα σηκώνεις ένα event για να το πιάσει αυτός που έχει reference στο collection σου.&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Τα αντικείμενα που αποθηκεύονται στο Collection δεν έχουν properties για να μπορέσω να βάλω το event στην αλλαγή των τιμών. Εχουν μόνο fields.&lt;br&gt;&lt;br&gt;&lt;b&gt;Kelman&lt;/b&gt;&lt;br&gt;Φοβάμαι είναι πολύ δαπανηρή αυτή η αλλαγή(σε χρόνο και έκταση αλλαγών). Αλλά θα την δοκιμάσω.&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33379.aspx</link><pubDate>Wed, 04 Jul 2007 20:36:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33379</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33379.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33379</wfw:commentRss><description>&lt;p&gt;Τότε λοιπόν, έχουμε και λέμε:&lt;/p&gt;&lt;p&gt;1) Καταρχήν θα υλοποιήσεις το INotifyPropertyChange interface στα αντικείμενα που προσθέτεις στο collection. Οδηγίες &lt;a href="http://msdn2.microsoft.com/en-us/library/ms743695.aspx" target="_blank"&gt;εδώ&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;2) Στο Add του collection (θα κάνεις όλα αυτά που είπα πριν για να έχεις έλεγχο για το τι γίνεται στο Add) θα κάνεις το εξής:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.ComponentModel.INotifyPropertyChanged notifyObject = (System.ComponentModel.INotifyPropertyChanged)this;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyObject.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(notifyObject_PropertyChanged);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (InvalidCastException)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("Items in this colleciton must implement the INotifyPropertyChanged interface");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;Η notifyObject_PropertyChanged είναι η method που θα καλείται κάθε φορά που αλλάζει κάτι σε κάποιο αντικείμενο και σε αυτή εσύ θα σηκώνεις ένα event για να το πιάσει αυτός που έχει reference στο collection σου.&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33376.aspx</link><pubDate>Wed, 04 Jul 2007 20:29:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33376</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33376.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33376</wfw:commentRss><description>&lt;P&gt;Δεν σε βολεύει να χρησιμοποιήσεις την κλάση BindingList(Of T); Παρέχει το ListChanged event που πιστεύω θα σε καλύψει.&lt;/P&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33375.aspx</link><pubDate>Wed, 04 Jul 2007 20:04:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33375</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33375.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33375</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Dimitris Papadimitriou:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Για μεταβολή, αν εννοείς αντικατάσταση item από ένα άλλο με κώδικα της μορφής MyCollection[2] = myNewItem; τότε γίνεται με τον ίδιο τρόπο βάζοντας το event στο Item property του collection σου. Αν μεταβολή εννοείς την αλλαγή οποιουδήποτε property στα αντικείμενά σου, τότε πιο δύσκολα τα πράγματα. Αν θέλεις αυτό, πες το να συνεχίσουμε!&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;Βασικά αυτό που με καίει περισσότερο είναι η παρακολούθηση των αλλαγών.&lt;br&gt;&amp;nbsp;Θέλω όποτε αλλάζει, είτε κάποιο αντικείμενο στο Collection&amp;nbsp; είτε η τιμή κάποιου property σε κάποιο αντικείμενο, να μπορώ να το ξέρω.&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33373.aspx</link><pubDate>Wed, 04 Jul 2007 19:05:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33373</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33373.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33373</wfw:commentRss><description>&lt;p&gt;Για την προσθήκη/αφαίρεση, θα μπορούσες να το κάνεις αν μπορούσες να κάνεις override τις Add/Remove methods του Collection base. Δυστηχώς δεν μπορείς. Μπορείς όμως αντί να κάνεις inherit να κάνεις implement το ICollection και να το υλοποιήσεις από την αρχή. Δεν είναι τόσο δύσκολο. Έτσι θα μπορέσεις να σηκώνεις ένα event κάθε φορά που εκτελείται η add ή η remove.&lt;/p&gt;&lt;p&gt;Για μεταβολή, αν εννοείς αντικατάσταση item από ένα άλλο με κώδικα της μορφής MyCollection[2] = myNewItem; τότε γίνεται με τον ίδιο τρόπο βάζοντας το event στο Item property του collection σου. Αν μεταβολή εννοείς την αλλαγή οποιουδήποτε property στα αντικείμενά σου, τότε πιο δύσκολα τα πράγματα. Αν θέλεις αυτό, πες το να συνεχίσουμε!&lt;br&gt;&lt;/p&gt;</description></item><item><title>Παρακολούθηση αλλαγών σε ένα Collection</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33372.aspx</link><pubDate>Wed, 04 Jul 2007 18:51:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33372</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33372.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=33372</wfw:commentRss><description>Έχω μια κλάση που κάνει inherit την CollectionBase. &lt;br&gt;Αυτό που θέλω είναι να μπορώ να ξέρω αν προστέθηκε, αφαιρέθηκε ή μεταβλήθηκε μια εγγραφή μέσα στο Collection αλλά δυστυχώς τα Colletions δεν έχουν events.&lt;br&gt;Πώς μπορώ να το κάνω αυτό? Υπάρχει κάποιο Interface που μπορώ να κάνω implement ή κάτι τέτοιο?&lt;br&gt;&lt;br&gt;Ευχαριστώ &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;</description></item></channel></rss>