Behaviors חלק 6– פתרון בעיית ה Commands ב MVVM

יום שישי, אוגוסט 10, 2012

בפוסט הקודם ראינו איך כותבים Action מאפס בעצמנו. בפוסט הנוכחי נראה את אחד השימושים הכי שימושיים ב Actions – ולמעשה איך נפתרת אחת הבעיות המציקות בשימוש ב Commands תחת MVVM. בעיית ה Commands.תחת MVVM, הדרך היחידה לחבר בין ה View לבין ה ViewModel זה על ידי Binding ו Commands. כך מתקבלת הפרדה טובה יותר מאשר הייתה לפני כן.בגדול, המידע יעבור בין ה ViewModel ל View ע”י Binding, ופעולות יעברו מה View ל ViewModel על ידי Commands.כדוגמא, ניצור חלון שמחובר ל ViewModel. ב ViewModel נגדיר Command בסיסי (אני משתמש ב RelayCommand מתוך MVVM Light). כך יראה ה ViewModel:  1:...
תגובה אחת

איך מממשים MVVM ? זה הרבה יותר פשוט ממה שחושבים.

יום שישי, פברואר 4, 2011

לממש MVVM הרבה יותר קל ממה שנשמע. משום מה יצא לDesign Pattern הזה שם של Design Pattern מורכב, ולפי דעתי זו סתם חוסר הבנה. הDesign Pattern במהותו פשוט עד טריוויאלי. בפוסט הקודם דיברתי על הסיבות לממש MVVM, ועל הפואנטה שעומדת מאחורי הDesignPattern הזה. העליתי גם שאלה – מה גורם להפרדה של XAML ו Code Behind לא להוות הפרדה מספיק טובה. אז האמת שההפרדה של XAML ו CodeBehind כבר לא ממש רעה, רק שהבעיה היא שהם לא ממש מופרדים – הם למעשה מהווים ביחד מחלקה אחת, ולכן שינויים באחד מהם לעיתים מאוד קרובות "ישברו" את השני. (ה Coupling...
11 תגובות

Adapting Silverlight Navigation to MVVM

יום שלישי, ינואר 25, 2011

  Adapting Silverlight Navigation to MVVM The Navigation feature in Silverlight is pretty awesome. It adds support for two very critical issues: 1. Real web-compliancy (Browser Address changes, which adds support for: SEO, Deep Linking, Browser Journal) 2. View-Switching navigation (switching views easily to solve the ever-lasting navigation problem) It’s important to notice that these two issues are actually completely different problems, which for some reason were bundled together! Many times you would want to switch views in different scenarios, but you might not want to change the Url, and even more often...

דוגמת קוד לMVVM בסילברלייט, פלוס דמו חי

יום רביעי, אוגוסט 4, 2010

כמו שהבטחתי דוגמת קוד גם לסילברלייט. הקוד כמעט ב100% מתאים לשתי הפלטפורמות. ההבדל הכי משמעותי הוא שבסילברלייט אין {x:Static }, אבל זה בהחלט לא קריטי.. והקוד:

קוד דוגמא להרצאת MVVM באינטל

יום שלישי, אוגוסט 3, 2010

מצורף הקוד שהראיתי בהרצאה על MVVM פלוס כמה דברים שלא הספקתי להראות, כדוגמת שליחת מסרים בין חלקים שונים באפליקציה, ע"י שימוש במסנג'ר של MVVMLight. הקוד הוא של WPF אך הוא למעשה מתאים ל סילברלייט אחד לאחד. מאוחר יותר אעלה גרסה גם לסילברלייט. הקוד המצורף מכסה: 1. יצירת ViewModel ו Views כפי שצריך תחת הארכיטקטורה 2. מימוש DataBinding ו Commands (RelayCommand) בשביל לתקשר בין הView ל ViewModel 3. שליחת מסרים ע"י Messenger 4. עבודה עם Behaviors על מנת להרים Command באירוע TextChanged של TextBox 5. עבודה עם VSM בשביל לתת מראה גראפי יפה עם מעברי אנימציה. 6. יצירת ViewModelLocator...