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

代码地址:

相关推荐
技术小甜甜36 分钟前
【系统实战排坑】电脑重启后总是直接进入 Windows,按键无效进不了 BIOS?最全解决方案在这里!
windows·电脑·蓝屏
阿富软件园1 小时前
文档搜索利器——“搜索文本”全能版 支持多格式 加 内容搜索
windows·电脑·开源软件
取个名字太难了a1 小时前
任务段提权实验
windows
2301_793069821 小时前
Linux Ubuntu/Windows 双系统 分区挂载指南
linux·windows·ubuntu
道路与代码之旅1 小时前
Windows 10 中以 WSL 驱 Ubuntu 记
linux·windows·ubuntu
星空椰2 小时前
Windows 使用nvm多版本管理node.js
windows·node.js
人工智能训练3 小时前
openEuler系统中home文件夹下huawei、HwHiAiUser、lost+found 文件夹的区别和作用
linux·运维·服务器·人工智能·windows·华为·openeuler
先生沉默先3 小时前
windows顺序程序启动器
windows
Adellle3 小时前
windows安装ES(8.14.x版本)
大数据·windows·elasticsearch
UNbuff_016 小时前
重复文件查找工具(AllDup)
windows·开源软件