Skip to content

Commit fab9d0c

Browse files
Two way binding CustomCheckbox
1 parent a8f7013 commit fab9d0c

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

src/Blazor.AdminLte.Site.Shared/Pages/Forms/General.razor

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@
99
<Title><CardTitle>Some simple link content</CardTitle></Title>
1010
<Body>
1111
<FormGroup>
12-
@code{
13-
List<CustomCheckboxState> Checkboxes = new List<CustomCheckboxState>()
14-
{
15-
new CustomCheckboxState(){ Identifier = "customCheckbox1", Value="option1", Label=new MarkupString("Custom Checkbox")},
16-
new CustomCheckboxState(){ Identifier = "customCheckbox2", Value="option2", IsChecked=true, Label=new MarkupString("Custom Checkbox checked")},
17-
new CustomCheckboxState(){ Identifier = "customCheckbox3", Value="option3", IsDisabled=true, Label=new MarkupString("Custom Checkbox disabled")}
12+
@code{
13+
List<CustomCheckboxState> Checkboxes = new List<CustomCheckboxState>()
14+
{
15+
new CustomCheckboxState(){ Identifier = "customCheckbox1", Value="option1", Label="Custom Checkbox"},
16+
new CustomCheckboxState(){ Identifier = "customCheckbox2", Value="option2", IsChecked=true, Label= "Custom Checkbox checked"},
17+
new CustomCheckboxState(){ Identifier = "customCheckbox3", Value="option3", IsDisabled=true, Label= "Custom Checkbox disabled"}
1818
};
1919
}
20-
@for (int i=0;i<Checkboxes.Count;i++)
20+
@for (int i = 0; i < Checkboxes.Count; i++)
2121
{
22-
<CustomCheckbox @bind-State="Checkboxes[i]" />
22+
<CustomCheckbox @bind-State="Checkboxes[i]" /> <text>Checked: @Checkboxes[i].IsChecked;</text>
2323
}
2424
</FormGroup>
2525
</Body>
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@namespace Blazor.AdminLte
22
<div class="custom-control custom-checkbox">
33
<input class="custom-control-input" type="checkbox" id="@State.Identifier" value="@State.Value" disabled="@State.IsDisabled" checked="@State.IsChecked" @onchange="DoChange">
4-
<label for="@State.Identifier" class="custom-control-label">@State.Label</label>
5-
</div>
4+
<label for="@State.Identifier" class="custom-control-label">@((MarkupString)State.Label)</label>
5+
</div>
6+

src/Blazor.AdminLte/Forms/CustomCheckbox.razor.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@ public partial class CustomCheckbox
1111
public EventCallback<CustomCheckboxState> StateChanged { get; set; }
1212

1313
[Parameter]
14-
public RenderFragment ChildContent { get; set; }
14+
public EventCallback<CustomCheckboxState> OnChange { get; set; }
1515

16-
[Parameter]
17-
public EventCallback<ChangeEventArgs> OnChange { get; set; }
18-
19-
private async void DoChange(ChangeEventArgs e)
16+
private void DoChange(ChangeEventArgs e)
2017
{
18+
State.IsChecked = (bool?)e.Value;
19+
StateChanged.InvokeAsync(State);
2120
if (OnChange.HasDelegate)
22-
await OnChange.InvokeAsync(e);
21+
OnChange.InvokeAsync(State);
2322
}
2423
}
2524
}

src/Blazor.AdminLte/Forms/CustomCheckboxState.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ public class CustomCheckboxState
88
public bool IsDisabled { get; set; }
99
public string Value { get; set; }
1010
public string Identifier { get; set; }
11-
public MarkupString Label { get; set; }
11+
public string Label { get; set; }
1212
}
1313
}

0 commit comments

Comments
 (0)