前面提到过prism框架,它也有定义好的命令,本节课就来介绍一下这个框架的安装与命令的使用。
一、下载安装Prism框架
打开nuget包管理器,搜索prism.unity关键词,下载Prism.Unity组件。
目前最新版本为8.1.97,Unity其实是一个IOC容器,而prism则包含了这个容器,安装完成后,会在项目的引用中找到prism的身影。
一共有3个项目,分别是prism,prism.unity.wpf和prism.wpf。正确安装好Prism框架后,我们就可以使用它的命令了,Prism框架提供了DelegateCommand、DelegateCommand<T>和CompositeCommand三种命令,分别是无参命令、有参命令和合并命令。
二、prism框架的命令
使用prism提供的命令分为两步,第一步定义命令,第二步调用命令。首先在C#后端的ViewModel中定义上述3种命令。
public class MainViewModel : ObservableObject
{
public DelegateCommand DelegateCommand { get; }
public DelegateCommand<string> ParamCommand { get; }
public CompositeCommand CompositeCommand { get; }
public GalaSoft.MvvmLight.Command.RelayCommand<string> MvvmlightCommand { get; }
public MainViewModel()
{
DelegateCommand = new DelegateCommand(() =>
{
MessageBox.Show("无参的DelegateCommand");
});
ParamCommand = new DelegateCommand<string>((message) =>
{
MessageBox.Show(message);
});
CompositeCommand = new CompositeCommand();
CompositeCommand.RegisterCommand(DelegateCommand);
CompositeCommand.RegisterCommand(ParamCommand);
MvvmlightCommand = new GalaSoft.MvvmLight.Command.RelayCommand<string>((message) =>
{
MessageBox.Show(message);
});
}
}
在这里,我们保留了上一节课定义的MvvmLight中的命令,方便对比,其实除了类型名不同,使用方式是相同的。CompositeCommand 合并命令需要先实例化,再通过它的RegisterCommand将需要合并执行的命令注册到其中,然后在前端用三个按钮分别绑定这3个命令。
<Button Content="prism无参数"
Margin="5"
Command="{Binding DelegateCommand}"
CommandParameter="Hello,Prism"/>
<Button Content="prism有参数"
Margin="5"
Command="{Binding ParamCommand}"
CommandParameter="Hello,Prism"/>
<Button Content="prism合并命令"
Margin="5"
Command="{Binding CompositeCommand}"
CommandParameter="Hello,Prism"/>
当单击“合并命令”按钮时,会依次执行前面两个命令。
当前课程源码下载:(注明:本站所有源代码请按标题搜索)
文件名:076-《Prism之DelegateCommand》-源代码
链接:https://pan.baidu.com/s/1yu-q4tUtl0poLVgmcMfgBA
提取码:wpff
——重庆教主 2023年10月12日