In a Microsoft Learn article on MVVM there is an, what I assume, UML diagram that didn't make sense to me. (https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns-wpf-apps-with-the-model-view-viewmodel-design-pattern)


I do not understand what is meant with the double arrow means. I couldn't find it on sites explaining UML or in any cheat sheet.

Can someone explain what is meant with the double arrow from AllCustomersViewModel to CustomerViewModel named AllCustomers?

  • 1
    This is obviously a screenshot from Microsoft Visual Studio Class Designer. So, it might be a specific feature of that tool or simply a bug. Commented Dec 23, 2022 at 10:41
  • @JörgWMittag I did not know there was a Class Designer tool in VS. I will check it out and if I find the answer I will post it here. Thanks!
    – Nordin
    Commented Dec 23, 2022 at 13:09

1 Answer 1


In UML associations A — B may be represented with an arrow A —> B to express navigability, i.e. the promise that there is an efficient way at runtime to get the related B’s for any A. But in UML, there is no double arrow (two arrow heads on the same side).

It’s a proprietary notation of Visual Studio. It corresponds to what visual studio designer calls “collection association” (see also this tutorial). It means that _customers in CustomerRepository and AllCustomers in AllCustomersViewModel are collections of Customer and CustomerViewModel respectively

In UML one would simply use a multiplicity symbol * near the arrow head. The role name, e.g _customers would then correspond to a multivalued element of type Customer and not to a collection of customers, without indication of how the multiplicity is implemented in practice.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.