custom collection עם של NotifyCollectionChanged, לא עובד
-
public class ListGroupShapes : IList<GroupShape>, ICollection<GroupShape>, INotifyCollectionChanged { public event NotifyCollectionChangedEventHandler CollectionChanged; ...... }
עשיתי לבד collection עם כל מה שצריך הכנסתי במקור הנתונים של הGRIDVIEW כלסס מסוג הקולקשן הזה.
היה אמור להיות שבעת הוספת אלמנט לקולקשן יודיע לגרד שנוסף ויפעל בהתאם.
בפועל כשהוא בא להוסיף ואני מנסה לשלוח הודעה זה לא עוזר כיון שהוא לא משתמש באירוע של שינוי קולקשיין. ובבדיקה אני רואה שזה מחזיר NULL.
public void Add(object item) { ..... ...... // if (this.CollectionChanged != null)//זה אכן שווה NULL { var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, tmpinx); this.CollectionChanged(this, args); } }
פורסם במקור בפורום CODE613 ב16/05/2014 08:21 (+03:00)
-
קולקשן לא "משתנה" כאשר מוסיפים לו אלמנט, המהות של קולקשן זה הצבעה על אלמנטים, כדי שנוטיפיי יגיב עליך להשתמש באובייקט מסוג observablecollection יש הסברים בסטאק אוברפלוו איך להציף אצלו אירוע נוטיפיי אבל משום מה האתר שלהם נפל כרגע.
פורסם במקור בפורום CODE613 ב16/05/2014 09:46 (+03:00)
-
מה פתאום!!!!!!
ודאי שאפשר ליצור את זה לבד... עשיתי ניסוי ועשיתי קוד דומה ל-observablecollection וזה עבד מצויין
יש לו איזה מאפיין שכנראה שכחתי להגדיר כיון observablecollection יורש מCOLLECTION כנראה ששם נמצאת הסיבה.
יש לי כבר אפליקציה שעובדת וניסיתי לראות את ההבדל ולא מצאתי.פורסם במקור בפורום CODE613 ב16/05/2014 11:44 (+03:00)
-
הבעיה היתה שלא שמתי לב בסך הכל שעשיתי ירושה ל- IList<T> ולא עשיתי ירושה ל IList
והבעיה היא שה-GridView מכריח לעבוד מול ILIST שינוי ג'נריק.תודה בכל מקרה
פורסם במקור בפורום CODE613 ב16/05/2014 12:26 (+03:00)