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

代码地址:

相关推荐
玖釉-3 小时前
下一个排列:从字典序到原地算法的完整推导
数据结构·c++·windows·算法
cddchina4 小时前
【Steps Recorder 和 Snipping Tool】
windows·效率工具·截图工具
我材不敲代码4 小时前
Python基础:列表详解、增删改查及常用高阶操作
开发语言·windows·python
KeanuReeves6 小时前
【常用操作】BAT常用脚本命令整理
windows
徐sir(徐慧阳)8 小时前
记一次生产库ORA-00257故障处理
windows·oracle·ora-00257
xiaoshuaishuai89 小时前
C# 服务注册与生命周期
开发语言·windows·c#
公子小六10 小时前
基于.NET的Windows窗体编程之WinForms打印
windows·microsoft·c#·.net·winforms
qq_4523962310 小时前
第三篇:《Docker 安装与配置指南(Linux / Windows / macOS)》
linux·windows·docker
思麟呀12 小时前
C++工业级日志项目(三)日志格式化消息封装
linux·开发语言·c++·windows
玖釉-12 小时前
从有序链表合并看链表算法的指针设计:LeetCode 21「合并两个有序链表」深度解析
c++·windows·算法·leetcode·链表