当前位置: 首页 > news >正文

Blazor 依赖注入妙用:巧设回调

文章目录

  • 前言
  • 依赖注入特性
    • 需求
    • 解决方案
    • 示意图

前言

依赖注入我之前写过一篇文章,没看过的可以看看这个。

C# Blazor 学习笔记(10):依赖注入

依赖注入特性

  • 只能Razor组件中注入
  • 所有Razor组件在作用域注入的都是同一个依赖。作用域可以看看我之前的文章。

需求

在这里插入图片描述
Razor组件关系

  • Main:主页面
    • TreeItem(多个):树节点

我想让主逻辑写在Main里面,组件只做最简单的交互。所有的点击事件都以回调的形式。

解决方案

在Service中声明回调

/// <summary>
/// 节点回调状态
/// </summary>
public enum T_JointState
{Add,Delete,Up,Down,Update
}/// <summary>
/// 节点添加回调
/// </summary>
public Action<int, T_JointState> CallBack { get; set; }

在子组件中使用回调

///注入依赖[Inject]private JointService jointService { get; set; }[Parameter]public int Index { get; set; }public void AddBtn(){MessageService.ShowMsg("添加");jointService.CallBack(Index,T_JointState.Add);}public void DeleteBtn(){MessageService.ShowMsg("删除");jointService.CallBack(Index, T_JointState.Delete);}public void UpBtn(){MessageService.ShowMsg("上移");jointService.CallBack(Index, T_JointState.Up);}public void DownBtn(){MessageService.ShowMsg("下移");jointService.CallBack(Index, T_JointState.Down);}public void EditBtn(){MessageService.ShowMsg("编辑");jointService.CallBack(Index, T_JointState.Update);}

在父组件中设置回调

[Inject]
private JointService jointService { get; set; }protected override void OnAfterRender(bool firstRender){if (firstRender){jointService.CallBack = JointNodeCallBack;StateHasChanged();}base.OnAfterRender(firstRender);}/// <summary>/// 设置回调函数/// </summary>/// <param name="index"></param>/// <param name="state"></param>public void JointNodeCallBack(int index,T_JointState state){MessageService.ShowMsg("回调成功!");}

示意图

在这里插入图片描述

http://www.lryc.cn/news/138083.html

相关文章:

  • Python 基础 -- Tutorial(三)
  • 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)
  • 微信小程序开发教学系列(1)- 开发入门
  • Nginx虚拟主机(server块)部署Vue项目
  • JAVA开发环境接口swagger-ui使用总结
  • mongodb 数据库管理(数据库、集合、文档)
  • 分布式与集群的定义及异同
  • 电脑端teams一直在线小程序,简单好用易上手
  • YOLOv5算法改进(4)— 添加CA注意力机制
  • 无涯教程-PHP - XML GET
  • Spark Standalone环境搭建及测试
  • 【PHP】流程控制-ifswitchforwhiledo-whilecontinuebreak
  • Pytorch-day04-模型构建-checkpoint
  • 使用Xshell7控制多台服务同时安装ZK最新版集群服务
  • python numpy array dtype和astype类型转换的区别
  • 浮动属性样式
  • keepalived双机热备 (四十五)
  • SpringBoot整合阿里云OSS,实现图片上传
  • Dynaminc Programming相关
  • 使用 Elasticsearch 轻松进行中文文本分类
  • MNN学习笔记(八):使用MNN推理Mediapipe模型
  • 主力吸筹指标及其分析和使用说明
  • Python高光谱遥感数据处理与高光谱遥感机器学习方法教程
  • 【洛谷】P1678 烦恼的高考志愿
  • 开机自启CPU设置定频
  • 嵌入式Linux开发实操(十二):PWM接口开发
  • 消息中间件介绍
  • [Unity] 基础的编程思想, 组件式开发
  • SVN 项目管理笔记
  • Android获取手机已安装应用列表JAVA实现