DataGrid WPF Events
-
א. ישנו אירוע לדטה גריד בשם RowEditEnding שמופעל לאחר עריכת שורה בדטה גריד
משם מה הנתונים של המשתנה sender מכילים את הנתונים של לפני השינוי,
מה הפיתרון להציג את הנתונים העדכניים?
ב. לא מצאתי אירוע שמתבצע לאחר מחיקת שורה,
מישהוא יודע על כזה אירוע או דרך אחרת לקבל מידע על כל מחיקת שורה?
תודה מראש!פורסם במקור בפורום CODE613 ב27/04/2014 22:54 (+03:00)
-
א. האירוע שאתה מזכיר הוא אחרי העדכון. אבל לא העדכון של מקור הנתונים (שזה עדכון "ביינדינגי" שזמן העדכון שלו בברירת מחדל זה LostFocus) אלא רק עדכון של התא הויזואלי בDataGrid. תוכל לראות את הערך המעודן ע"י גישה למאפיין הטקסט של הטקסט בוקס (למשל, במקרה של עמודת טקסט רגילה) של אותו התא.
ב. אין, אבל תוכל לעקוב אחרי מקור הנתונים במקרה של ObservableCollection.
פורסם במקור בפורום CODE613 ב29/04/2014 12:39 (+03:00)
-
בהודעתי הקודמת בסעיף א' יש חוסר דיוק, הברירת מחדל היא לא LostFocus (זה קורה בעת עזיבת הטקסטבוקס אפי' לפני עזיבת השורה) אלא Explicit כלומר ע"י בקשה מפורשת בקוד. בשביל לשנות את ההתנהגות הזו אפשר לשנות בבינדינג של עמודה את המאפיין UpdateSourceTrigger לPropertyChanged (זה משתנה ממש "און ליין") או לLostFocus (בעת יציאה מהתא, לא מכל השורה) ככה:
<DataGridTextColumn Binding="{Binding Path=XXX, UpdateSourceTrigger=PropertyChanged}" />
פורסם במקור בפורום CODE613 ב30/04/2014 13:48 (+03:00)