Blazor Cheatsheet

Two-Way binding i DotNet 7

Custom component

<input 
	@bind:event="oninput"
	@bind:get="SearchText"
	@bind:set="SearchTextChanged"/>

@code{
	[Parameter]
	 public string SearchText { get; set; } = string.Empty;

	[Parameter]
	 public EventCallback<string> SearchTextChanged { get; set; }
	 
}

Bruk i parent

<SearchInput 
	@bind-SearchText="@searchText"/>
Gammel måte

Før ble det gjort slik som nedenfor. Det gjør man ikke lenger, da det er fort gjort å lage en evig loop

Two-Way binding i komponent

@* MyInput.razor *@
@using Microsoft.AspNetCore.Components  

<input type="text"  
	@bind-Value="TextValue"/>  
               
  
@code {  
  
  
    [Parameter]  
    public EventCallback<string> TextValueChanged { get; set; }  
  
    [Parameter]  
    public string? TextValue  
    {  
        get => _textValue;  
        set  
        {  
            if (_textValue == value) return; //Important. Endless loop if not there 
            _textValue = value;  
            TextValueChanged.InvokeAsync(value);  
        }  
    }  
  
    private string? _textValue;  
  
}
<MyInput @bind-TextValue="@MyObject.MyString" />