@using Syncfusion.Blazor.Buttons
<EditForm Model="_exampleModel" OnValidSubmit="HandleValidSubmit">
<TriCheckbox @bind-TriChecked="_exampleModel.IsValidatedDesign"></TriCheckbox>
<button type="submit">Submit</button>
</EditForm>
@code {
SfCheckBox checkbox;
private ExampleModel _exampleModel = new ExampleModel();
private void HandleValidSubmit()
{
Console.WriteLine("OnValidSubmit");
_exampleModel.IsValidatedDesign = null;
}
public class ExampleModel
{
public bool? IsValidatedDesign { get; set; } = null;
}
} |
<SfCheckBox Checked="@Convert.ToBoolean(TriChecked)" Indeterminate="@(TriChecked == null)" ValueChange="valueChangeHandler" @key="TriChecked" Name="@Name" Value="@Value" Label="@Label"></SfCheckBox>
@code {
private bool isInderminate = false;
[Parameter]
public bool? TriChecked
{
get;
set;
} = null;
protected override void OnInitialized()
{
if (TriChecked == null)
{
isInderminate = true;
}
else
isInderminate = false;
}
[Parameter]
public EventCallback<bool?> TriCheckedChanged
{
get;
set;
}
[Parameter]
public string Name
{
get;
set;
}
[Parameter]
public string Value
{
get;
set;
}
[Parameter]
public string Label
{
get;
set;
}
[Parameter]
public EventCallback<TriCheckboxChange> TriCheckedValueChange
{
get;
set;
}
private void valueChangeHandler(Syncfusion.Blazor.Buttons.ChangeEventArgs args)
{
this.TriCheckedChanged.InvokeAsync(args.Checked);
TriCheckboxChange triArgs = new TriCheckboxChange();
triArgs.TriChecked = args.Checked;
triArgs.Name = args.Name;
this.TriCheckedValueChange.InvokeAsync(triArgs);
}
public class TriCheckboxChange
{
public string Name;
public bool? TriChecked;
}
} |