החלפת Views באמצעות ComboxBox (כמעט) ללא קוד

14/10/2012

היום הגעתי לשלב בפיתוח באפליקציה שבו הייתי צריך להגיע מהחלפת פריטים ב- ComboBox לשינוי View. לא רציתי לבצע זאת באמצעות switch על שינוי בחירה של פריטים ב- ComboxBox, אלא עם כמה שפחות קוד. לצורך זאת אני חייב להזין את ה- ComboBox דרך הקוד כ- Dictionary כאשר ה- Key הוא enum אשר יכוון לכל אחד מה- ViewModels, וה- Value הוא מאפיין כללי של כל ה- ViewModels אשר אני מתכוון להחליף ביניהם. את ה- Dictionary הזנתי בנתונים ב- constructor. 1: public Dictionary<ViewModelsList, IViewModel> EnumItemsList { get; set; } ...
תגיות: ,
אין תגובות

אובייקט מי??? חלק ב’

03/10/2012

בפוסט הקודם הצגתי את האובייקט DynamicObject ואיך ניתן בעזרתו לבצע לוקליזציה נקייה ב- xaml. כעת אני רוצה לעלות שלב נוסף ולבצע לוקליזציה על ערכי Enum אשר נמצאים ב- ComboBox. ישנם המון פוסטים באינטרנט על איך לחבר Enum ישירות ב- xaml ל- Combox (והרי אחד טוב). כיצד אם כן ניתן לבצע לוקליזציה על הפריטים ב- Enum מבלי לעבור דרך הקוד? ניעזר כאן ב- IValueConverter ונכיר חיה חדשה אשר משתלבת ב- DynamicObject שלנו אשר נקראת GetMemberBinder. אני מצרף כאן התחלה של פרוייקט אשר בעזרתו נעבור שלב שלב עד לפתרון הרצוי.   ראשית עלינו להכניס...
אין תגובות

אובייקט מי??? – DynamicObject

02/10/2012

כאשר אנו רוצים להרים לוקליזציה בתוכנת WPF אנו צריכים לייצר קבצי Resource (.resx) אשר יכילו את המחרוזות המתורגמות לשפה המבוקשת, להוסיף רפרנס לפרויקט, ואז להוסיף רפרנסים סטטיים למונח אותו אנו רוצים לתרגם. דוגמא לכך תוכלו למצוא בקובץ המצורף כאן. אך לדעתי לכתוב כך רפרנסים כדי לבצע לוקליזציה אינם אלגנטים כלל. 1: <TextBlock Text="{Binding Source={x:Static local:Resource1.Hello}}"…/> ב- .Net 4.0 הגיע אלינו יצור חדש, Dynamic Object, ואיתו המילה החדשה, dynamic, יצור מוזר כזה שאפשר לעשות איתו המון דברים מגניבים די בקלות. בואו נראה איך אפשר לקצר את הכתיבה...
תגיות: , ,
אין תגובות