I want to show a contextmenu filled with databound items when the user left clicks a button.

I have tried this code in this post:


I used the last xaml post, but sadly this is only working for non Binding context menus. WHen adding menuitems like the author does its working perfectly. When I bind the context menu to an items source, I have to FIRST right click to show items, THEN left click and the same context menu appear with items. If I click left button first, the context menu is empty. I can't figure out why??

So, I need help with:

1) Create a button with a context menu that is visible ONLY when clicking left mouse button (by def this is not a context menu but whatever works for my customer, and I don't have to write a whole new control just for this...)

2) Make it work in a MVVM project, no code in the code-behind file, only in viewmodel

3) How can I bind commands so I can in the viewmodel access the object that was clicked on in the context menu. For example, if I bind a collection of Person objects to the context menu, if the user select the menu item with Person=Donald, I want in the viewmodel a reference to Donald so I can work with it. How is this possible? I should be able to pass a CommandParameter from view to viewmodel?
But how do I hook it up?

kind regards from someone who is learning WPF the hard way, implementing new functionality to a 10000 lines of code application...