[Prism] MVVM模式的数据绑定详解

一、Prism框架包安装

        首先Nuget安装prism框架包,然后修改App类。修改App继承PrismApplication,并且实现PrismApplication中的两个虚方法。同时修改xaml文件,添加命名空间,xmlns:prism=" " ,修改Application为prism:PrismApplication。

二、DataContext绑定

        Prism提供自动的数据绑定功能,只需要复合相应的命名规范。其中对于的View页面,需要放在Views文件夹下,并且命名为NameView,对于的ViewModel需要放在ViewModels文件夹下,命名为NameViewModel,并且需要继承 Bindablebase基类。然后在XAML文件中添加:

prism:ViewModelLocator.AutoWireViewModel="True"

         此时DataContext自动与new NameViewModel绑定

        Prism的MVVM模式提供一下几种绑定的功能:

                属性绑定,前端的空间的依赖项属性与后端绑定。

                命令绑定,按钮或者其他能够执行命令的空间与后端的命令的绑定。

                命令参数绑定,像后端命令传递参数

                复合绑定

三、属性绑定

        以TextBlock为例,其中的Text属性的绑定为 Text="{Binding Name}"。Text与后台的Name属性绑定

private string name;
public string Name
{
    get
    {
        return name;
    }
    set
    {
        SetProperty(ref name,value)
    }
}

        这里的SetProperty方法是Bindablebase类中的,这个类实现了INotifyPropertyChanged基类。还有相应的泛型方法。实现了事件通知的功能。当属性修改之后,相应的前台属性也会修改

四、命令绑定

        命令绑定的形式 Command="{Binding Click_Command}"。对应的后台代码是:

public DelegateCommand Clicl_Command
{
    get => return new DelegateCommand( Action action );
}

        DelegateCommand 的创建形式有直接创建,在构造函数内添加一个私有的执行方法,这个方法就是执行Command的方法体。或者是创建的时候,写一个Lambda表达式。

        当需要传递参数时,前端代码,添加CommandParameter="{Binding ElementName=xName}"绑定一个前端的控件名。可向后端传递相应的控件参数。

猜你喜欢

转载自blog.csdn.net/weixin_43163656/article/details/127884731
今日推荐