You can find XCommand open source codeplex wpf extention project here, xcommand.codeplex.com, this allows you to bind Command and CommandParameter of any events like MouseMove, MouseLeftButtonDown to any UI elements that inherits from WPF UIElement.
You can find windows store 8 application and windows desktop application version of class libraries here. You want WPFXCommand that deals with WPF desktop application.
Here, how it works.
Add WPFXCommand.dll as reference to your desire project.
Add the namespace on your xaml file as below:
xmlns:XCmd="clr-namespace:WPFXCommand;assembly=WPFXCommand"
Now, you can bind Command and CommandParameter to any available events on any UI elements inherit from WPF UIElement as below:
<Grid>
<TextBlock Margin="20,30,20,0" VerticalAlignment="Top" Height="80" x:Name="XTextBlock"
Foreground="{Binding FgColor, Mode=TwoWay}"
XCmd:MouseMove.Command="{Binding TextBlockPointerMovedCommand}"
XCmd:MouseLeftButtonDown.Command="{Binding TextBlockPointerPressedCommand}"
XCmd:MouseLeave.Command="{Binding TextBlockPointerExitedCommand}"
Text="{Binding Description, Mode=TwoWay}">
</TextBlock>
<Grid Grid.Column="1" Background="{Binding BgColor, Mode=TwoWay}"
XCmd:MouseMove.Command="{Binding GridPointerMovedCommand}"
XCmd:MouseMove.CommandParameter="{Binding ElementName=XTextBlock, Path=Text}"
XCmd:MouseLeftButtonDown.Command="{Binding GridPointerPressedCommand}"
XCmd:MouseLeftButtonDown.CommandParameter="{Binding ElementName=XTextBlock, Path=Text}"
>
</Grid>
</Grid>
Hope this will help you to get rid of event based code behind.