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系统

代码地址:

相关推荐
玖釉-4 分钟前
解密图形渲染的性能原罪 —— Draw Call
c++·windows·图形渲染
假如梵高是飞行员1 小时前
WSL2 安装 OpenClaw(Windows)
windows
zhangfeng11331 小时前
提示 R for Windows front-end 怎么被防火墙 阻止了 Rscript.exe` 和 `R.exe`区别
windows·r语言·php
lxmyzzs1 小时前
解决Windows安装OpenClaw报错:无法加载npm.ps1,禁止运行脚本
前端·windows·npm·openclaw
lzp07911 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
i建模2 小时前
在 Windows CMD 中将当前路径永久添加到系统环境变量
运维·windows
星释3 小时前
OpenClaw实战:Windows安装OpenClaw常见问题
windows
bu_shuo4 小时前
删除Windows未知账户
windows·管理员
不做超级小白5 小时前
Git大小写陷阱:当README.md遇上readme.md
linux·windows·git
黄美美分享5 小时前
电脑工具!windows系统优化集合!让您的电脑快到起飞!集系统调校、设置修复、垃圾清理于一体。
windows·电脑