اما mvvm چیست؟
الگوی طراحی MVVM ،یک الگوی طراحی مخصوص برای برنامه های WPF و Silverlights می باشد.
که در آن :
Models:
لایه دسترسی به داده هاست. و در واقع کلاس های داده در این لایه قرار خواهند گرفت.مثل مدل edmx در Entity FrameWork
Views :
لایه رابط کاربری است.در واقع به تمام المان های نمایش داده شده در رابط کاربری اشاره دارد،نظیر دکمه ها و پنجره ها و دیگر کنترل ها
View Models:
View Model لایه ای بین لایه Model و View می باشد ، View Model همچنین ممکن است به عنوان یک الگوی میانجی که کارش سازمان دهی کردن اطلاعات User Case هایی است که در کد های منطقی به کار رفته اند و در یک View پشتیبانی می شوند به کار رود.
ViewModel ارایه کننده View است. یعنی هر فیلد در ViewModel بیشتر برابر با View است و به همین علت از Model دورتر است
هر View ی مستقیماً به یک ViewModel bind میشود و در نتیجه تغیرات مربوط به View به صورت لحظهای درViewModel دیده میشود و از طرفی تغییرات برعکس هم باعث render مجدد View می شود.
معمولاً برای هر View فقط یک ViewModel وجود دارد.iv این ارتباط یک به N می باشد.
Model و View فقط از طریق ViewModel ارتباط دارند.