WPF הזנה שגויה בדטה גריד
-
לאחר שהמשתמש סיים למלא שורה מסויימת בדטה גריד ועובר לשורה הבאה, אם אחד השדות מכיל אי התאמה בין הנתונים שהוזנו לסוג השדה מופיע סימן קריאה '!' אדום בראש אותה שורה בדטה גריד, כעת אני רוצה לדעת באיזה שדה בדיוק יש שגיאה, איפה זה כתוב? אני פשוט מעוניין להקפיץ איזו הודעה למשתמש או איזה טולטיפ שידע מה לתקן ולא יצטרך לנחש.
תודה לכולם.
פורסם במקור בפורום CODE613 ב30/01/2014 16:43 (+02:00)
-
בקוד זה הולך ככה:
Validation.GetErrors(DataGridRow)
במקום DataGridRow יכול לבוא כל פקד WPF, שיש בו או בצאצאיו קלט עם בינדינג כמדומני.
בXAML, עם בינדינג לאלמנט, הנה דוגמא לבינדינג לאלמנט הנוכחי:
"{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"
זה יכול להיות גם בטקסט בוקס וכו', זה התנהגות שישנה בכל פקדי קלט.
כפי שאתה רואה הXAML ניגש לאינדקס מס' אחד, כי יכולים להיות כמה שגיאות, של כמה תאים למשל (אם תחבר את זה לתא ולא לשורה, אז תמיד תהיה רק שגיאה אחת).
אז אם אתה רוצה להציג הכל תצטרך להשתמש בItemsControl.
תוכל להשתמש עם טריגר על Validation.HasError.
בשביל לשנות את התנהגות התצוגה בWPF במקרה של שגיאה יש מאפיינים מוכנים כמו ValidationErrorTemplate שמקבלים ContrleTemplate.
ברמת השורה תוכל גם לשנות את הסימן קריאה וכיוצא בזה.פורסם במקור בפורום CODE613 ב30/01/2014 18:09 (+02:00)
-
-
עשיתי כך: (ME = מחלקה יורשת מדטה גריד)
Dim Errors = Validation.GetErrors(Me)
וזה לא הכיל כלום אף שהקלדתי בדטה גריד אותיות במקום מספרים והתא הפך לאדום.
מה הטעות?@דוד ל.ט.
ארוע? לא יודע. למה אתה צריך?
אני הייתי רוצה שכאשר יש שגיאה תיקפוץ הודעת שגיאה ולא רק שינוי ויזואלי של הפקדים, ושבהודעה תהיה רשימה של שגיאות ומה מיקומן מדוייק בדטה גריד.
פורסם במקור בפורום CODE613 ב02/02/2014 13:58 (+02:00)