Blazor中的双向绑定是一种方便的工具,但有时需要取消绑定。可以通过以下示例来实现取消两种方式的绑定。
示例1:使用EventCallback
首先在组件中定义一个EventCallback委托,然后通过@bind-Value绑定它。在适当的时候,可以使用EventCallback的InvokeAsync方法来取消绑定。
@using Microsoft.AspNetCore.Components.Web
@code {
[Parameter]
public string Text { get; set; }
private EventCallback _textChanged;
private void OnTextChanged(ChangeEventArgs args)
{
this.Text = args.Value.ToString();
_textChanged.InvokeAsync(this.Text);
}
public void CancelBinding()
{
_textChanged = null;
}
}
示例2:使用绑定属性
另一种取消绑定的方法是在已绑定的属性上重新绑定另一个值。在适当的时候,可以将绑定属性设置为null来取消绑定。
OnChange(args.Value.ToString()))" />
@code {
private string _text;
[Parameter]
public string Text
{
get => _text;
set
{
if (_text != value)
{
_text = value;
TextChanged.InvokeAsync(value);
}
}
}
[Parameter]
public EventCallback TextChanged { get; set; }
private void OnChange(string value)
{
Text = value;
}
public void CancelBinding()
{
this.TextChanged = null;
}
}
上一篇:Blazor双向绑定 <select>/<option>
下一篇:Blazor双向绑定搜索栏报错“ObjectReferenceNotSettoanInstanceofanObject”,我处理模型的方式是否不正确?