cascading parameter

main
syneffort 2 years ago
parent ae3a11faf2
commit c64962a686
  1. 5
      BlazorApp/BlazorApp/Pages/Counter.razor
  2. 8
      BlazorApp/BlazorApp/Pages/ShowUser.razor
  3. 16
      BlazorApp/BlazorApp/Pages/User.razor

@ -2,7 +2,7 @@
<PageTitle>Counter</PageTitle> <PageTitle>Counter</PageTitle>
<h1>Counter</h1> <h1 style="color:@this.Color">Counter</h1>
<p role="status">Current count: @currentCount</p> <p role="status">Current count: @currentCount</p>
@ -10,6 +10,9 @@
<button class="btn btn-secondary" @onclick="AutoIncrement">Auto Increment</button> <button class="btn btn-secondary" @onclick="AutoIncrement">Auto Increment</button>
@code { @code {
[CascadingParameter(Name = "ThemeColor")]
public string Color { get; set; }
private int currentCount = 0; private int currentCount = 0;
private void IncrementCount() private void IncrementCount()

@ -6,17 +6,23 @@
<br /> <br />
<Counter></Counter>
<ul class="list-group"> <ul class="list-group">
@foreach (UserData user in this.Users) @foreach (UserData user in this.Users)
{ {
<li @key="user" class="list-group-item"> <li @key="user" class="list-group-item">
<button class="btn btn-link" type="button" @onclick="(() => KickUser(user))">[Kick]</button> <button class="btn btn-link" type="button" @onclick="(() => KickUser(user))">[Kick]</button>
<label>@user.Name</label> <label style="color:@this.Color">@user.Name</label>
</li> </li>
} }
</ul> </ul>
@code { @code {
[CascadingParameter(Name = "ThemeColor")]
public string Color { get; set; }
[Parameter] [Parameter]
public List<UserData> Users { get; set; } public List<UserData> Users { get; set; }

@ -4,7 +4,20 @@
<h3>Online Users</h3> <h3>Online Users</h3>
<label>Theme color:</label>
<select class="form-control" @bind="_selectedColor">
@foreach (var option in _options)
{
<option value="@option">
@option
</option>
}
</select>
<CascadingValue Name="ThemeColor" Value="_selectedColor">
<ShowUser @ref="_showUser" Users="_users" Callback="CallbackAction" /> <ShowUser @ref="_showUser" Users="_users" Callback="CallbackAction" />
<ShowUser @ref="_showUser" Users="_users" Callback="CallbackAction" />
</CascadingValue>
<br /> <br />
@ -22,6 +35,9 @@
</div> </div>
@code { @code {
private string _selectedColor = "Green";
private List<string> _options = new List<string>() { "Green", "Red", "Blue" };
private List<UserData> _users = new List<UserData>(); private List<UserData> _users = new List<UserData>();
private ShowUser _showUser; private ShowUser _showUser;

Loading…
Cancel
Save