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

代码地址:

相关推荐
Zzz 小生1 小时前
LangChain Messages:消息使用完全指南
数据库·windows·microsoft
发现你走远了11 小时前
Windows 下手动安装java JDK 21 并配置环境变量(详细记录)
java·开发语言·windows
love530love12 小时前
【OpenClaw 本地实战 Ep.3】突破瓶颈:强制修改 openclaw.json 解锁 32k 上下文记忆
人工智能·windows·json·cuda·lm studio·openclaw·context length
刮涂层_赢大奖13 小时前
我给MAC做了一个 Windows 任务栏,用了之后再也回不去 Dock 了
windows·macos·ios
聂 可 以14 小时前
Windows环境Git安装教程(下载Git安装包、安装Git、验证Git是否安装成功)
windows·git
secondyoung17 小时前
Git使用:Git使用问题及解决方法总结
windows·经验分享·git·vscode·gitee·github·gitcode
呆萌的代Ma18 小时前
解决windows记事本打开后打开上一次的文件导致卡死
windows
x***r15119 小时前
Dism++x64系统优化清理安装步骤详解(附系统清理与优化使用教程)
windows
张小凡vip20 小时前
OpenClaw简介--windows系统安装OpenClaw
人工智能·windows·openclaw
hello_fengfeng20 小时前
WSL2 安装到其他磁盘(D/E盘)完整指南
windows·ubuntu