INotifyCollectionChanged עם - DataGrid WPF
-
בדטה גריד WPF הקולקשין מחובר ל - ObservableCollection יש לי אירוע לאחר הוספת רשומה בקולקשין של INotifyCollectionChanged
האירוע מתבצע בעת הכניסה לשורה בדטה גריד ואני רוצה שהוא יתבצע כאשר יוצאים מהשורה
תודה לכל המסייעיםפורסם במקור בפורום CODE613 ב17/03/2015 15:28 (+02:00)
-
אכתוב כאן את הפתרון שלבסוף שמואל מצא (שיחה טלפונית).
קודם הרקע:- כשנכנסים לשורה חדשה בDataGrid המחובר למקור נתונים, הDataGrid יוצר מייד אובייקט מהסוג המתאים ומוסיף אותו למקור הנתונים, עוד לפני עדכון שום תא.
- כאשר מעדכנים תאים בכל שורה שהיא, אף שאובייקט השורה מממש PropertyChanged הוא לא מוזנק, עד יציאה מהשורה אז מופעל האירוע על כל שדה ושדה (כלומר כמס' השדות).
התנהגות זו ניתנת לעקיפה בכמה דרכים, ניתן לחפש בגוגל "wpf datagrid cell cell update ~immediately".
כעת הפיתרון של שמואל זה ללכוד את אירוע ההוספה, אז להירשם לאירוע שינוי של האובייקט, בעת הזנקת אירוע שינוי, זה הזמן שהשורה נגמרה להיערך. אז מסירים את ההרשמה, וכמובן עושים כל קוד נדרש.
פורסם במקור בפורום CODE613 ב18/03/2015 11:55 (+02:00)