Can anyone tell me what the actual syntax is for EventToCommand
class. From what I believe is that EventToCommand
class works with Silverlight / WPF and WP7, hence I think its a better choice to go down.
From what I believe, I can add any click event and get it forced into my ViewModel
, but I am having an issue in finding the best way to do this.
I know you can add it without Blend, but are there snippets available?
Or is there an easier way to add it via VS 2010? Any help or if anyone knows of a good tutorial on this would be great.
Suppose you use .NetFramework4
:
First add namespace
:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
Syntax for the Loaded event.
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<cmd:EventToCommand Command="{Binding Mode=OneWay, Path=LoadedCommand}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
I updated my project and it looks like they moved the command to:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
0) if you dont't know WPF and MVVM, then read Josh Smith article about WPF and MVVM pattern https://msdn.microsoft.com/en-us/magazine/dd419663.aspx
1) In your project add package (through NuGet) MvvmLightLibs
2) add reference to System.Windows.Interactivity
3) In "View" XAML add:
a)
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:command="http://www.galasoft.ch/mvvmlight"
b)
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing">
<command:EventToCommand Command="{Binding OnClosingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Window>
4) In ViewModel add necessary property
public ICommand OnClosingCommand
{
get
{
return new RelayCommand(() => SomeMethod());
}
}
P.S. In your View should be specified DataContext (XAML)
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
It is work. I myself just learned.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With