מה זה Data Binding?
Data Binding היא טכניקה שמאפשרת לסנכרן בין שתי תכונות של אובייקטים שונים.
לרוב משתמשים בטכניקה זו בשביל לסנכרן בין אובייקט המכיל מידע (Data) לאובייקט המציג את המידע למסך (UI). לדוגמא התכונה Name של אובייקט מסוג Person יכולה להיות מסונכרנת לתכונה Text של אובייקט TextBox. הסנכרון יכול להיות דו-כיווני הוא חד-כיווני. לפעמים נעשה גם סנכרון בין שני פקדים כמו בדוגמא הבאה.
ע"י הרצה של תוכנית זו ניתן לראות שסימון ה CheckBox משנה את הכפתור לפעיל ולהפך.
כמובן שיכולנו לעשות את הדוגמא הזאת גם ללא שימוש ב Data Binding, אלא ע"י טיפול באירוע Click של ה CheckBox וכתיבת קוד ב #C. היתרון ב Data Binding הוא שנחסך מאתנו לכתוב הרבה קוד שאחראי על סנכרון שכזה.
אובייקט היעד – זהו האובייקט שנרצה לשנות תכונה שלו. אובייקט זה חייב לרשת ישירות או בעקיפין מ DependencyObject. כל הפקדים בWPF הם כאלו. בדוגמא הקודמת האובייקט יעד היה ה Button.
תכונת היעד – זוהי התכונה שנרצה לשנות. תכונה זו חייבת להיות Dependency Property. למזלנו, בWPF רוב התכונות הן כאלו, לכן לרוב זוהי אינה מגבלה. בדוגמא הקודמת, תכונת היעד הייתה IsEnabled.
אובייקט המקור – זהו האובייקט שאליו היעד מתחבר. אין מגבלות על סוג האובייקט. בדוגמא הקודמת האובייקט מקור היה ה CheckBox.
תכונת המקור – זוהי התכונה שממנה נרצה לקחת את הערך ולהציבו בתכונת היעד. תכונה זו יכולה להיות גם תכונה רגילה (כלומר לא Dependency Property). בדוגמא הקודמת תכונת המקור הייתה IsChecked. נעיר כי ניתן בתכונת המקור לרשום ביטויים מורכבים המכילים גם תתי תכונות (תכונה של תכונה).
בנוסף להגדרות הללו, ניתן להגדיר אפשרויות נוספות שישפיעו על תהליך ה Binding, לדוגמא כיוון זרימת המידע המידע.