מדריך WPF

מדריך WPF – הקשר בין XAML לקוד #C

‏ • Sela

קובץ code-behind

שפת XAML מאפשרת הפרדה טובה בין הלוגיקה של האפליקציה להגדרת ממשק המשתמש (UI).
בדרך כלל, ליד קובץ XAML ישנו קובץ קוד בשפת #C, שמכיל קוד שנדרש ע"י קובץ הXAML, לדוגמא פונקציות שיקראו בעת לחיצה על כפתור. קובץ הקוד הנ"ל נקרא לעיתים code-behind file.

אם לקובץ הXAML שלנו קוראים MainWindow.XAML אזי קובץ הcode-behind יקרא: MainWindow.XAML.cs. ניתן לראות קובץ זה ב Visual Studio ע"י לחיצה על הסימן שמשמאל לקובץ הXAML

מדריך WPF – הקשר בין XAML לקוד #C

 

גישה לUI מתוך קובץ code-behind

נניח ונרצה בקובץ ה code-behind לבצע שינויים על אלמנטים בUI, לדוגמא לשנות את גודל הפונט של הכפתור ל16. כיצד נוכל לעשות זאת?

הוספת שם לאלמנט

לצורך כך ראשית יש לתת שם לכפתור המבוקש. נעשה זאת ע"י הוספה של התכונה x:Name לכפתור באופן הבא:

x:Name="myButton"

מדריך WPF – הקשר בין XAML לקוד #C

 

גישה לאלמנט מקוד

כעת נוכל לגשת לאלמנט ישירות מקובץ ה code-behind.

בדוגמא שלנו נפתח את קובץ הcode-behind ע"י בחירתו ב Solution Explorer או ע"י לחיצה על מקש F7 מתוך קובץ הXAML.

נוסיף ל Constructor של MainWindow את השורה הבאה:

myButton.FontSize = 16;

מדריך WPF – הקשר בין XAML לקוד #C

 

רישום לאירוע של אלמנט ב UI

רישום לאירוע בקובץ הXAML נעשה בצורה דומה להשמת ערך ל Property.

יש לרשום את שם האירוע, לאחריו סימן "=" ולאחריו שם של פונקציה. פונקציה זו צריכה להיות ממומשת בקובץ הcode-behind.

לדוגמא, אם נרצה להגיב לאירוע Click של כפתור, נלך לקובץ הXAML ונוסיף את השורה הבא בהגדרת הכפתור:

Click="myButton_Click"

מדריך WPF – הקשר בין XAML לקוד #C

כעת נלך לקובץ הcode-behind לפונקציה שהגדרנו ע"י לחיצה על מקש ימני מעל הפונקציה ובחירת Navigate to Event Handler

מדריך WPF – הקשר בין XAML לקוד #C

נגיע לפונקציה בעלת השם שרשמנו ובעלת החתימה המתאימה לאירוע Click.

מדריך WPF – הקשר בין XAML לקוד #C

נוסיף את הקוד המבוקש וסיימנו!

תגיות: , , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק