網(wǎng)站首頁 編程語言 正文
Blazor當(dāng)中, 類似實(shí)現(xiàn)了WPF的基礎(chǔ)綁定功能, 支持在HTML元素當(dāng)中使用Razor語法進(jìn)行綁定C#字段、屬性或 Razor 表達(dá)式值。
綁定語法
在Html標(biāo)簽中,使用Razor的語法, 前綴使用@符號, 然后添加 @bind="xxxx" 即可實(shí)現(xiàn)最簡單的綁定, 如下:
input @bind="Name" /> @code { private string Name{ get; set; } }
通過上面的操作, Input中的值與屬性Name則進(jìn)行了一個雙向綁定, 無論是Name主動發(fā)生變更, 還是Input的值發(fā)生變化, 兩者都會同時更新。
通過@bind的聲明與 value="@xxx"的區(qū)別:
@xxx/@bind區(qū)別
value="@xxx": 只能做到屬性呈現(xiàn)到UI元素當(dāng)中, 無法與UI元素建立關(guān)系, 即: 元素發(fā)生變化并不會影響到屬性變更。
綁定對象
下面示例演示了一個如何在html元素中的值如何綁定到一個對象的屬性上。
<input @bind="Stu.Name"/> @code{ public Student Stu { get; set; } = new Student() { Name = "123" }; public class Student { public string Name { get; set; } } }
效果如下所示:
數(shù)據(jù)格式化
如果需要使用數(shù)據(jù)格式化顯示, 可以通過Razor中的語法: @bind:format , 如下所示,展示了一個日期元素格式化樣例:
<input @bind="StartDate" @bind:format="yyyy-MM-dd" /> @code { [Parameter] public DateTime StartDate { get; set; } = new DateTime(2020, 1, 1); }
綁定子組件屬性
通常情況下, 對于父界面而言, 往往是由一個或者多個子組件組成 (用于提高程序的復(fù)用性), 所以父組件而言, 往往需要將父組件的參數(shù)綁定到子組件當(dāng)中。
下面的例子,演示了一個子組件當(dāng)中的字符串, 如何綁定到父組件的屬性上。
聲明子組件參數(shù)與回調(diào)函數(shù)
聲明了組件參數(shù)Year, 還需要聲明一個組件回調(diào)函數(shù), 該回調(diào)函數(shù)主要用于子組件的數(shù)據(jù)發(fā)生變更。
回調(diào)函數(shù)的聲明規(guī)則為, 參數(shù)類型與對應(yīng)的屬性一直, 名稱以屬性名開頭
<p>Year: @Year</p> @code { [Parameter] public int Year { get; set; } [Parameter] public EventCallback<int> YearChanged { get; set; } }
父組件調(diào)用
<ChildComponent @bind-Year="ParentYear" /> @code { [Parameter] public int ParentYear { get; set; } = 1978; }
無法預(yù)估的值
當(dāng)元素與屬性建立了綁定關(guān)系, 但是受限于屬性的類型, 如果UI元素中發(fā)生了類型不一致的變更,則在觸發(fā)綁定事件時,無法分析的值會自動還原為以前的值。
例: 當(dāng)綁定的屬性為Int類型時, UI元素將內(nèi)容修改為string字符, 當(dāng)UI元素發(fā)生事件變更時, 該值無法進(jìn)行int類型的轉(zhuǎn)換,則回自動還原。
原文鏈接:https://www.cnblogs.com/zh7791/p/12742466.html
相關(guān)推薦
- 2022-04-07 淺談C++11中=delete的巧妙用法_C 語言
- 2022-10-14 element tree懶加載默認(rèn)展開指定節(jié)點(diǎn)
- 2022-10-25 IDEA 安裝tomcat10創(chuàng)建servlet報404錯誤
- 2023-03-16 redis刪除hash的實(shí)現(xiàn)方式_Redis
- 2022-06-08 FreeRTOS實(shí)時操作系統(tǒng)在Cortex-M3上的移植過程_操作系統(tǒng)
- 2022-06-01 詳解使用內(nèi)網(wǎng)穿透工具Ngrok代理本地服務(wù)_其它綜合
- 2022-05-24 淺談C#中Action和Func回調(diào)的常用方式_C#教程
- 2022-07-02 element-ui及時清除驗(yàn)證規(guī)則
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支