WPF使用Prism实现简单订餐系统

新建wpf项目,nuget引入Prism.DryIoc,MaterialDesignThemes

引入后,修改App.xaml 前台引入 xmlns:prism="http://prismlibrary.com/"和prism:PrismApplication App.xaml.cs

App.xaml.cs继承PrismApplication,重写CreateShell和RegisterTypes

cs 复制代码
   protected override Window CreateShell()
   {
       return Container.Resolve<MainWindow>();
  


   }

   protected override void RegisterTypes(IContainerRegistry containerRegistry)
   {

   }

MainWindowViewModel继承BindableBase,实现mvvm

上面步骤,同样可以通过新建prism 项目,自动引入引入了prism

在model中新建属性,实现属性自动通知功能

cs 复制代码
    private double _total;

    public double Total
    {
        get { return _total; }
        set
        {
            _total = value;
            RaisePropertyChanged();
        }
    }

前台绑定

cs 复制代码
 <TextBox VerticalAlignment="Center" x:Name="Total" Text="{Binding Total}"  Width="70" Margin="4 0 0 0" TextAlignment="Center" BorderThickness="0 0 0 2"></TextBox>

新建Command

public DelegateCommand SelCommand { get; set; }

在构造函数中,绑定委托方法

SelCommand = new DelegateCommand(()=> {

SelectDish();

DispAllSelect();

});

如果方法带有参数,可以使用DelegateCommand<T>泛型声明

前台绑定控件Command属性调用

<CheckBox IsChecked="{Binding IsSelected,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" Command="{Binding DataContext.SelCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" ></CheckBox>

最后实现简单的Order系统

代码地址:

相关推荐
信鸽爱好者1 小时前
Windows +VM虚拟机安装github服务器
服务器·windows·ubuntu·机器人·github
分号3 小时前
你在运行该虚拟机时启用了侧通道缓解
windows
鹿角片ljp4 小时前
深入理解Java集合框架:核心接口与实现解析
java·开发语言·windows
葱段5 小时前
Windows 安装 Chocolatey 包管理器
windows
张火火isgudi6 小时前
VMware Debian 挂载 Windows 文件夹至 Debian 目录
linux·运维·windows·debian
小尧嵌入式6 小时前
C++选择排序插入排序希尔排序快排归并排及大小根堆实现优先级队列
数据结构·c++·windows·算法·排序算法
浪扼飞舟7 小时前
常见WPF用户控件操作(集合、动态生成、位运算、依赖属性)
windows
Lupino16 小时前
实战记录:使用 Haskell.nix 交叉编译 Haskell 项目至 Windows
windows·haskell
zzcufo18 小时前
使用multimonitortool工具实现多屏显示器的映射
windows·计算机外设
一条咸鱼¥¥¥19 小时前
【运维经验】服务器磁盘做镜像的方法
运维·服务器·windows·经验分享