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

代码地址:

相关推荐
在繁华处23 分钟前
轻棋局(一):项目总览与架构设计
人工智能·windows
灰色人生qwer1 小时前
Python 规则:带默认值的参数必须放在不带默认值的后面
linux·windows·python
水饺编程5 小时前
编程基础:令牌粘贴指令,【##】
c语言·c++·windows·visual studio
Vodka~5 小时前
一根网线——Windows共享网络给Linux访问互联网
linux·网络·windows
森叶5 小时前
Windows 下从 Chromium/V8 源码编译 V8 10.8.168.25
windows
love530love6 小时前
ComfyUI:为什么说它是 AIGC 应用层面的集大成者?
人工智能·pytorch·windows·aigc·devops·comfyui·extensions
HLJ洛神千羽6 小时前
提升电脑无线网络性能方案
windows
xdpcxq10297 小时前
Ubuntu 24.04 安装企业微信(deepin-wine 版)完整指南
windows·ubuntu·企业微信
kebeiovo7 小时前
Windows下Codex安装详细配置使用指南
windows·codex
CCPC不拿奖不改名7 小时前
PostgreSQL数据库部署linux服务器流程
linux·服务器·数据库·windows·python·docker·postgresql