עשר הטעויות הנפוצות ביותר ב MVVM שכמעט כל אחד נופל בהן

29 באפריל 2012

קיבלתי לא מעט תגובות על הפוסט הקודם שלי – הפיכת ה Code behind ל ViewModel ב WPF – כשחלקן גרמו לי לחשוב עוד פעם כמה חסר תיעוד מסודר של MVVM. יש המון חומר כתוב באינטרנט, אבל רובו המוחלט לא מסודר, לא מדוייק, ואפילו לפעמים ממש מטעה.המצב עד כדי כך מורכב שכמעט לא יוצא לי לייעץ בחברה בה לא נופלים לטעות כזו או אחרת, היות ולא מעט טעויות השתרשו כפתרונות לגיטימיים במהלך השנתיים האחרונות.שתי תגובות קלאסיות שקיבלתי יותר מפעם אחת היו:1. “ב MVVM לפעמים ה ViewModel משרת כמה View-ים, והדרך שהצגת בפוסט מאפשרת רק יחס של 1:1”2. “בפוסט למעשה הורדת...
תגיות: , , , , , , ,
3 תגובות

איך ליצור Binding ללא כתיבת קוד–ע”י שימוש בBinding Wizard של VS2010

25 באפריל 2012

שאלה שנשאלה בפורום WPF –ש: כשכותבים Binding ב WPF יש אינטיליסנס (השלמת כתיבה) חלקית בלבד. האם יש דרך שויז’ואל סטודיו ישלים את מה שאנחנו כותבים?ת: האמת היא שיש - החל מויז'ואל סטודיו 2010 - והדרך הכי טובה לראות איך זה עובד זה ע"י הדגמה של היכולת (מומלץ לראות באיכות גבוהה - 720p):
תגיות: , , , , ,
אין תגובות

איך לגרום ל WPF להתנהג כאילו ש MVVM באמת נתמך מהקופסא – להחליף בין ה Code Behind ל ViewModel !

24 באפריל 2012

יוצא לי ללמד MVVM לעיתים די קרובות, וכמעט תמיד עולה השאלה למה WPF לא תומך בזה “בילט אין”.הרי CodeBehind ו ViewModel בסופו של יום מאוד דומים, ההבדל הוא רק ש ViewModel הוא מחלקה נפרדת לחלוטין ולפיכך ההפרדה בין הלוגיקה לבין הUI חזקה יותר.כשמממשים MVVM, ויזו’ואל סטודיו לא יודע על הקישור בין ה View לבין ה ViewModel, ולפיכך אי אפשר לעבור ביניהם בקלות ע”י לחיצה על F7 כמו שאפשר בין ה View ל CodeBehind שלו. בנוסף, היה נחמד אם ויז’ואל סטודיו היה מציג את ה ViewModel “מתחת” ל View, כמו שהוא עושה ל CodeBehind.בנוסף לכל זה, את ה CodeBehind עצמו...
תגיות: , , , ,
3 תגובות

טיפ WPF – איך לגרום ל ToggleButtons להתנהג כמו קבוצה? איך לממש את זה ב MVVM ?

4 באפריל 2012

לקוח שאל אותי לאחרונה איך אפשר להשתמש ב Toggle Button כך שרק אחד יהיה בחור בכל רגע נתון, ושבמידה ולוחצים על אחר אז הכפתור הקודם לא יהיה בחור יותר, זה בערך המצב אליו הוא רצה להגיע:רק שבמימוש הנאיבי הראשוני שום דבר לא מונע מהכפתורים להיות לחוצים כמה ביחד: <UniformGrid Rows="6" Columns="2" HorizontalAlignment="Left" > <UniformGrid.Resources> <Style TargetType="ToggleButton"> <Setter Property="Margin" Value="2" /> <Setter Property="Padding" Value="10,5" /> ...
תגיות: , , , ,
3 תגובות