由于vs2010没有集成mvvmlight 因此想要使用mvvmlight的relaycomman须要引用dll
须要测试某个功能的时候,不能进行快带的集成后端
若是之前有其它版本的vs能过nuget安装过,则目录 是:mvvm
c:\users\administrator.xdmwiwrtm7kc37y\documents\visual studio 2013\Projects\WpfApplication2\packages\MvvmLightLibs.4.2.30.0\lib\net40
引用函数
GalaSoft.MvvmLight.WPF4.dll
放一个button ,指定Button的命令是TestN, 这里是随便写的,全符合命名规范测试
注意:Datacontext的指定 ,若是不指定 ,命令不会触发。这里不加新类,直接写在CS里面。this
就是为了测试而测试spa
<Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpfApplication2="clr-namespace:WpfApplication2" Title="MainWindow" Height="350" Width="525" DataContext="{Binding RelativeSource={RelativeSource Self}}" > <Grid > <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Button Command="{Binding TestN}" Width="100" Height="100" Content="wefwfwef"/> </Grid> </Window>
注意:
若是没有如下这句,会报错code
DataContext="{Binding RelativeSource={RelativeSource Self}}"
public partial class MainWindow : Window { private RelayCommand _testN; public MainWindow() { InitializeComponent(); //DataContext = this; } public RelayCommand TestN { get { return _testN??(_testN=new RelayCommand(() => { TestNMethod(); })); } set { _testN = value; } } private void TestNMethod() { throw new NotImplementedException(); } }
注意:
若是xaml中没有指定 datacontxt,则要在构造 函数中指定datacontext是本类。xml
调用之后TestNMethod()方法会被触发。get