Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 246519
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T21:10:46+00:00 2026-05-11T21:10:46+00:00

My name is Jesús from Spain, I’m a .NET developer and I just discovered

  • 0

My name is Jesús from Spain, I’m a .NET developer and I just discovered this great web few days ago.

I have some questions about the MVVM pattern and I will be glad if you can answer them.
I started using WPF three months ago and I’ve learned the MVP pattern.
MVP is so good because you can structure the application so well.

I started seeing MVVM everywhere, but everyone is using the pattern by his own method.
Every blogger is talking about MVVM in their WPF’s blogs but every implementation is distinct.

I’m focused now with the implementations that use the MVVM toolkit on CodePlex, but I have questions and I can’t find too much information.

I think that MVVM is a variation of MVP.
With MVP every view has a presenter that does the view’s job.
In MVVM it’s the same thing but using commands whenever you can.

I also saw that if you need an event, it’s like with MVP; delegating the event to the presenter / View-Model, that is if it’s not a job for the view (such as updating the UI).

On the other hand, the View-Model doesn’t has a View reference so I have to play harder with data-bindings.
You have to use the DelegateCommands (that are the same thing as RelayCommands, right?).

Uhm… more questions… Is it safe to use the same View-Model with two views / user-controls?

Oh… I ran into a problem yesterday when I was playing MVVM.
I created a CommandReference of my command for the key-binding thing and I assigned this reference to the command property of my button, well, the CanExecuted worked the first time but it didn’t update the IsEnabled property when the CanExecuted was true. I fixed it by binding the command directly to the button and not using the reference. The question is: Why some code is linking the reference to the objects and why other code is binding the command directly?

What things related with MVVM should I learn? (I saw something called attached behaviors yesterday but I don’t know what is that).

I’m rewriting a note tacking app that I developed using MVP but now with the MVVM. I will replace the events with commands (using the DelegateCommand), eliminate the views references on the View-Model and I think that’s all because the examples that I saw of MVVM is much like MVP.

Well, I will appreciate if you point me to all the misunderstandings that I have with this pattern.

Thank you and in the future I will help the next MVVM novices 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T21:10:46+00:00Added an answer on May 11, 2026 at 9:10 pm

    Wow, I’m going to try to answer as many of your questions, that don’t involve a specific technology or framework, as possible… sorry if I miss some (bullet points would help)

    • MVVM is not necessarily a variation of MVP. MVP itself is an ambiguous, loaded term. Martin Fowler did it justice by splitting it into two patterns. MVVM stands on its own, but shares some concepts with the MVP patterns. Like all UI patterns, it seeks to separate view logic from business logic as much as possible. What the MVVM does that is different from MVP is it creates a model purely for the purpose of presentation (or a presentation model). This is different than how MVP patterns solve the separation problem.
      • Passive View – With the passive view, the view never sees the model.
      • Supervising Controller – MVVM is much closer to the Supervising Controller pattern than to the Passive View. The only real difference here could be that the MVVM explicitly creates a model just for the view (hence the term “View Model”)
    • The ViewModel doesn’t have a reference to the view, because it serves as a model for the data of the view. This is an appropriate abstraction. If it also referenced the view, you would have a two-way dependency which would create additional coupling. Also, the ViewModel itself doesn’t have a real reason to be aware of the View. Its only job is to abstract the model (the actual business model) from the view.
    • DelegateCommands vs. RelayCommands – I believe you’re getting technology specific here, so I can’t really answer that one well.
    • You should not design a ViewModel for more than one view. This only creates coplexity inasmuch as if you change a view, you will have to investigate which ViewModels might be affected and change those. This could possibly lead to a cascade effect. Your behavior should be in the business model, not the ViewModel, so the ViewModel need only contain translation and event handling logic.
    • It would be a good idea, however, to have a 1:1 ratio of ViewModel to UserControl, since UserControls are supposed to be able to act as autonomous units on your screen.
    • As for the other technology specific questions, sorry, I have no answer. I can suggest, however, that you carefully read the links I included for the Passive View, Supervising Controller, and Presentation Model. The provide some context to UI patterns, and are technology neutral.

    It’s important to keep in mind that, while MVVM is suited to solving problems posed by adopting WPF, it is not a technology specific pattern. If you dive too deeply into a specific implementation without understanding the underlying philosophy, you could make some very big mistakes early on, and only discover them after it’s too late. Unfortunately, MVVM is not a well documented pattern, and you are right when you stated that everyone has their own idea of what it is.

    It’s not a revolutionary pattern (it has been around for years under different names), but the data binding of WPF makes it a viable solution now, and so it’s enjoying newfound popularity. It’s a good pattern, but it’s not doctrine. Approach every “dictate” you’re faced with with the appropriate amount of skepticism.

    EDIT

    @micahtan is right when stating that data bind is a very important piece in WPF. I stated that WPF’s data binding enables the MVVM solution, but the binding itself is very powerful, which is why adoption of MVVM is growing faster than the literature surrounding it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 252k
  • Answers 252k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer The correct way would be to create a protocol called… May 13, 2026 at 9:44 am
  • Editorial Team
    Editorial Team added an answer This is not possible, because references are stored by value:… May 13, 2026 at 9:44 am
  • Editorial Team
    Editorial Team added an answer Try this: $contents = file_get_contents($filename); list($tag, $name, $description, $text1, $text2,… May 13, 2026 at 9:44 am

Related Questions

My name is Jesús from Spain, I'm a .NET developer and I just discovered
my name is aderson and in this moment i have something question about composition
That is my first question around here, my name is Anna! My problem: My
for example the string is my name is xyz(25) i want to get 25
I have this string s1 = My name is X Y Z and I

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.