Custom-Control VS. User-Control

29 בJune 2013

לא מעט יוצא לי להסתובב בין מתכנתים בחברות שונות אליהן אני מגיע במסגרת תפקידי,  ושם אני שומע הסבר על הפקד החדש שהם בנו,   אני מחפש אותו ומחפש ומחפש.. ואז קולט שזה לא בדיוק Control אלא UserControl..   אז חבר'ה תפסיקו לעבוד על עצמכם, זה לא נקרא לכתוב קונטרולים זה נקרא לגרור אוסף פקדים לתוך UserControl..   ועכשיו ברצינות. קונטרול זו יחידה קטנה, ברורה מאוד עם תפקיד מסויים. ומוגדר מראש. המעלה המרכזית היא אפשרות להשאיר קובץ theme חיצוני ולתת למשתמש לאפיין את המראה שלו לפי העדפותיו. UserControl זה פאנל קטן שאמנם אני...
תגיות: , , ,
תגובה אחת

Observer Pattern VS. Mediator Pattern

28 בJune 2013

שאלה שנפוצה מאוד,    אם תפקיד הObserver הוא ליידע אובייקט X כאשר אובייקט Y שינה מצב אז מה משמעות הMediator שכאמור תפקידו לתווך בין שני אובייקטים ולהעביר מסרים??   לחידוד העניין ממליץ לקפוץ אחורה ולקרוא על Mediator כאן, ועל Observer כאן.   אז נחדד כמה הבדלים: Observer שזה בעצם Event מתנהג ביחס של אחד ל N,  כשגם יכול להיות 0 בצד הN , ז"א שאנו מגדירים תשתית לרישום לאירוע ומי שירצה יירשם ויאזין.   מול זה ניצב המדיאטור שתפקידו זה אינקפסולציה והפרדה...
אין תגובות

ICollectionView – למתקדמים WPF

מומלץ בחום לעשות היכרות עם הקלאס CollectionView על הנגזרות השונות. ICollectionView , CollectionView, CollectionViewSource.   מה הרעיון? יש לנו מודל, יש לנו נתונים , יש לנו גם UI שמחצין את הנתונים, אנחנו רוצים לצרכי UI בלבד לבצע איטרציות שונות לצרכי סינון, חיפוש, וכו' אבל בלי משמעות אמיתית על המודל,                  כמו גם בלי הכבדה על ביצועים וזיכרון.   נניח שאני מנסה לבצע סינון כזה בדוגמא של איזשהו ListView שמציג רשימת מוצרים שבהתאם לבחירת המשתמש הרשימה הולכת וקטנה, לדוגמא: סנן מוצרים שמחירם גדול מ: X וכן סנן מוצרים ששמם מתחיל ב: Y וגם...
תגיות: , ,
אין תגובות

WPF comboBox Column inside Datagrid

21 בJune 2013

Many times we need to build our own DataGrid style, starting with AutogeneratedColumns = false; I have seen few demos and styles but most of them was just to messy and made as huge xaml structure . , since the combo is inside the grid template we searching the DataContext Properties using RelativeSource to Parent (the grid, or the window itself ). my solution for beginners is quite simple and easy to maintains, lets try this code: 1: <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Persons}" SelectionChanged="Selector_OnSelectionChanged" SelectedItem="{Binding...
אין תגובות

Key Down Vs. Key up

If you like to test and understand the difference between KeyDown and KeyUP events lets try the next Test: Set some input control like TextBox, now register for key down and check the text Property in the Handler function : 1: <TextBox x:Name="txb" KeyDown="txb_KeyDown" /> 2:  3: private void txb_KeyDown(object sender, KeyEventArgs e) 4: { ...
תגיות:
אין תגובות

Mediator Design Pattern

15 בJune 2013

בתרגום חפשי "המתווך" , או מילים גסות יותר.. תבנית המדיאטור מספקת תקשורת בין רכיבים בלי קשר ישיר , זאת אומרת אמורה לעזור לנו בהפרדת תלות בין רכיבים בתכנה. לדוגמא יש לנו את רכיב X , ואת רכיב Y , Y מנסה לדבר עם X אבל הוא לא מכיר אותו כלל, נניח עקב שיקולי ארכיטקטורה שונים ישנה הפרדה בין רכיבים. ועדיין נרצה ליצור קשר בין הרכיבים. לא ממש קשר אלא יותר בכיוון קבלת מידע. ונסביר: רפרנס לקובץ אומר בד"כ שאני רוצה להשתמש במידע שנמצא שם, אבל לפעמים כל מה שחסר לנו שזה חיווי...
אין תגובות

שמירת צבע במבנה נתונים והמרה

8 בJune 2013

אני מתייחס לדוגמא קלאסית של שמירה ב DataBase אבל רלוונטי כמובן לכל מקרה שנרצה לשמור לצורך שימוש מאוחר יותר, כמו בקובץ או בנתני Cash פנימיים. הרעיון הוא שישנם כמה אובייקטים שמייחצנים צבע בדוט נט (חבל ?! ) ונצטרך בכל מקרה להמיר נתונים בצורה בטוחה, (ז"א לא מומלץ לשמור מחרוזת שמייצגת את שם הצבע) מן הסתם כדאי למקם ערך מספרי , ולבצע עליו המרות בהתאם לצורך. אז לשמור INT  בDB אני מניח שברור איך.. איך להמיר אותו לצבע וויזואלי זאת שאלה טובה יותר, ובכן ראשית איך...
תגיות: ,
תגובה אחת

Binding errors – למתקדמים WPF

7 בJune 2013

לא תמיד אנו מודעים להתרעות ולשגיאות של Binding מהסיבה הפשוטה. Xaml Parser קורא את הגדרות הBinding שלנו ומחפש אלמנט כזה בעץ הלוגי שלנו. אם לא נמצא הוא משחרר התראה אבל ממשיך הלאה, אם המערכת היתה קורסת היינו מודעים לשגיאה אבל פשוט הנתונים לא מוצגים. אז איפה הבעיה? אם יש לכם המון שגיאות כאלה אתם פוגעים בביצועי המערכת.. אנו נעשה היכרות עם שני מאפייני binding validation ואם קונפיגרציית השגיאות במקרה של Binding Errors. נתחיל בדוגמא בסיסית. יש לי קוד שנראה כך:       ...
תגיות: , ,
תגובה אחת

PropertyChanged – למתקדמים WPF

  כל מפתח WPF יודע מה עושה INotifyPropertyChanged וסביר להניח שגם מה עומד מאחורי המנגנון, ומן הסתם יודע גם מה זה Observer Pattern. הפעם נלך 2 צעדים קדימה.. נתחיל בתזכורת: כשאני מממש על אובייקט את האינטרפייס הנ"ל אני מחוייב להחזיק Event שנראה כך: 1: public class ViewModel : INotifyPropertyChanged 2: { ...
תגיות: , ,
אין תגובות