binding supplement

main
syneffort 2 years ago
parent a6e5c4f6b4
commit 2ad689dcc4
  1. 13
      BlazorApp/BlazorApp/Pages/Counter.razor
  2. 19
      BlazorApp/BlazorApp/Pages/User.razor

@ -7,6 +7,7 @@
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
<button class="btn btn-secondary" @onclick="AutoIncrement">Auto Increment</button>
@code {
private int currentCount = 0;
@ -15,4 +16,16 @@
{
currentCount++;
}
private void AutoIncrement()
{
Timer timer = new Timer(x =>
{
InvokeAsync(() =>
{
IncrementCount();
StateHasChanged();
});
}, null, 1000, 1000);
}
}

@ -28,7 +28,9 @@
<input class="form-control" placeholder="Add User" @bind-value="_inputName"/>
</div>
<div class="col">
<button class="btn btn-primary" type="button" @onclick="AddUser">Add a user</button>
@* 속성(Attribute)도 binding 가능 *@
@* conditional atribute 속성 자체에도 조건 붙일 수 있음 *@
<button class=@_btnClass type="button" @onclick="AddUser" disabled="@(_users.Count >= 5)">Add a user</button>
</div>
</div>
</div>
@ -37,12 +39,15 @@
private List<UserData> _users = new List<UserData>();
private string _inputName;
private string _btnClass = "btn btn-primary";
protected override void OnInitialized()
{
_users.Add(new UserData() { Name = "Simpson" });
_users.Add(new UserData() { Name = "Richard" });
_users.Add(new UserData() { Name = "Tylor" });
RefreshButton();
}
private void AddUser()
@ -52,10 +57,22 @@
_users.Add(new UserData() { Name = _inputName });
_inputName = "";
RefreshButton();
}
private void KickUser(UserData user)
{
_users.Remove(user);
RefreshButton();
}
private void RefreshButton()
{
if (_users.Count % 2 == 0)
_btnClass = "btn btn-primary";
else
_btnClass = "btn btn-secondary";
}
}

Loading…
Cancel
Save