Unfortunately, only ButtonBase
derived controls have the possibility for binding ICommand
objects to their Command
properties (for the Click
event).
However, you can use an API provided by Blend to map an event (like in your case MouseDoubleClick
on the ListBox
) to an ICommand
object.
<ListBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding YourCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox>
You’ll have to define: xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
and have a reference to System.Windows.Interactivity.dll
.
— EDIT —
This is part of WPF4, but u can use Microsoft.Windows.Interactivity if you’re not using WPF4. This dll is from Blend SDK, which doesn’t require Blend, from here:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f1ae9a30-4928-411d-970b-e682ab179e17&displaylang=en
Update: I found something that should help you. check this link on MVVM Light Toolkit which contains a walkthrough on how to do this, along with a link to the needed libraries. MVVM Light Toolkit is a very interesting framework for applying MVVM with Silverlight, WPF, and WP7.
Hope this helps 🙂