问题
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.
回答1:
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>
回答2:
I updated my project and it looks like they moved the command to:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
回答3:
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.
来源:https://stackoverflow.com/questions/5868589/mvvm-light-adding-eventtocommand-in-xaml-without-blend-easier-way-or-snippet