引用mvvmlight dll ,操做command

前言

由于vs2010没有集成mvvmlight 因此想要使用mvvmlight的relaycomman须要引用dll
须要测试某个功能的时候,不能进行快带的集成后端

引用mvvmlight 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

如何实现

xaml中的代码以下:

放一个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}}"

cs后端的代码以下

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

相关文章
相关标签/搜索