Blazor-Get&Set

基本介绍

@bind可以实现双向绑定,有时候我们可能需要处理一些逻辑,这时候我们可以将set和get分开来进行绑定,使用@bind:get@bind:set来实现,进行分别处理。
@bind:get指定要绑定的字段,属性
@bind:set指定给字段,属性设置值的回调,绑定c#方法
@bind一致,@bind:set也默认使用onchange事件

分别绑定

下面我们通过一段示例来看看具体的用法,我们分别绑定set和get

@page "/injectPage"
@rendermode InteractiveAuto
@inject ILogger<InjectPage> logger;
<h3>InjectPage</h3>
<input @bind:set="SetName" @bind:get="name"></input>
<p>@name</p>
@code {
    string? name = "张三";
    void SetName(string? name){
        this.name = name;
    }    
}

这段代码实现了基本的功能,和@bind的功能是一致的,下面我们添加一些逻辑看看结果如何

@page "/injectPage"
@rendermode InteractiveAuto
@inject ILogger<InjectPage> logger;
<h3>InjectPage</h3>
<input @bind:set="SetName" @bind:get="name"></input>
<p>@name</p>
@code {
    string? name = "张三";
    void SetName(string? name){
        this.name = "姓名:"+ name;
    }    
}

我们让每次输入名称后添加“姓名:”的前缀,看看能否实现
在这里插入图片描述

看看效果,功能是可以正常实现的。

绑定属性

我们也可以直接绑定属性,在属性中实现get,set方法

@page "/injectPage"
@rendermode InteractiveAuto
@inject ILogger<InjectPage> logger;
<h3>InjectPage</h3>
<input @bind="Name"></input>
<p>@name</p>
@code {
    string? name = "张三";
    string? Name{
        get{
            return name;
        }
        set{
            this.name = "姓名:" + name;
        }
    }
}

这段代码可以获得和分别绑定一样的效果

往期推荐

Blazor-组件路由事件
Blazor-内置输入组件
Blazor-Ant Design of Blazor快速开始
Blazor-NavigationLock组件

Blazor - ApexCharts中绘制连续折线图并跳过0值节点,可按如下步骤操作。 ### 1. 安装Blazor - ApexCharts库 首先要在Blazor项目里安装Blazor - ApexCharts库。可借助NuGet包管理器来完成安装: ```plaintext Install-Package BlazorApexCharts ``` ### 2. 准备数据 要准备好包含数据点的列表,且过滤掉值为0的节点。以下是示例代码: ```csharp using System.Collections.Generic; public class ChartData { public List<DataPoint> Series { get; set; } public ChartData() { Series = new List<DataPoint>(); } } public class DataPoint { public double X { get; set; } public double Y { get; set; } } // 过滤0值节点 public ChartData GetFilteredData() { var data = new ChartData(); // 假设原始数据 var originalData = new List<DataPoint> { new DataPoint { X = 1, Y = 5 }, new DataPoint { X = 2, Y = 0 }, new DataPoint { X = 3, Y = 8 }, new DataPoint { X = 4, Y = 0 }, new DataPoint { X = 5, Y = 12 } }; // 过滤掉Y值为0的节点 data.Series = originalData.Where(dp => dp.Y != 0).ToList(); return data; } ``` ### 3. 创建ApexCharts组件 在Razor组件中创建ApexCharts组件,使用过滤后的数据来绘制连续折线图。示例代码如下: ```razor @page "/" @using BlazorApexCharts @using System.Collections.Generic <h3>Continuous Line Chart Skipping Zero Values</h3> <ApexChart TItem="DataPoint" Type="ChartType.Line" Series="@chartData.Series" XValue="@(dp => dp.X)" YValue="@(dp => dp.Y)" Height="350" Width="100%"> </ApexChart> @code { private ChartData chartData; protected override void OnInitialized() { chartData = GetFilteredData(); } public class ChartData { public List<DataPoint> Series { get; set; } public ChartData() { Series = new List<DataPoint>(); } } public class DataPoint { public double X { get; set; } public double Y { get; set; } } public ChartData GetFilteredData() { var data = new ChartData(); var originalData = new List<DataPoint> { new DataPoint { X = 1, Y = 5 }, new DataPoint { X = 2, Y = 0 }, new DataPoint { X = 3, Y = 8 }, new DataPoint { X = 4, Y = 0 }, new DataPoint { X = 5, Y = 12 } }; data.Series = originalData.Where(dp => dp.Y != 0).ToList(); return data; } } ``` ### 4. 解释 - **数据过滤**:在`GetFilteredData`方法中,过滤掉了Y值为0的节点,这样绘制折线图时就不会包含这些节点。 - **ApexCharts组件**:运用`ApexChart`组件,把过滤后的数据绑定到`Series`属性上,从而绘制连续折线图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code-Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值