@page "/"
<h1>Hello, world!</h1>
<MatSelect TValue="Guid"
@bind-Value="@SomeViewModelValue.Customer"
Disabled="@(!IsAdmin || HasProducts)">
<MatOption Value="new Guid()" Disabled="true">Please select</MatOption>
@foreach(var customer in AvailableCustomers)
{
<MatOption Value="customer.Id">@customer.Name</MatOption>
}
</MatSelect>
<p>
HasProducts: @HasProducts
</p>
<p>
IsAdmin: @IsAdmin
</p>
<p>
Disabled: @(!IsAdmin || HasProducts)
</p>
<MatButton OnClick="ChangeProducts">Change Products</MatButton>
@code {
SomeViewModel SomeViewModelValue = new()
{
Customer = new Guid("a7a5a780-1f97-4683-9cf6-1ad956c3da29")
};
public bool IsAdmin {get;set;} = true;
public bool HasProducts {get;set;} = true;
List<Customer> AvailableCustomers = new List<Customer>()
{
new Customer() {
Id = new Guid("a7a5a780-1f97-4683-9cf6-1ad956c3da29"),
Name = "Test 1"
},
new Customer() {
Id = new Guid("54649c26-c4dc-41fb-b8b7-46711c50cc04"),
Name = "Test 2"
},
new Customer() {
Id = new Guid("f8292032-a376-44c2-bcdf-e97e5e6f80b8"),
Name = "Test 3"
},
new Customer() {
Id = new Guid("5b034fd8-0541-4e70-94fb-83d5212e7921"),
Name = "Test 4"
},
new Customer() {
Id = new Guid("738ffb94-89d5-4351-a705-c71a2e087836"),
Name = "Test 5"
}
};
public void ChangeProducts()
{
HasProducts = HasProducts ? false : true;
}
class SomeViewModel
{
public Guid Customer {get;set;}
}
class Customer
{
public Guid Id {get;set;}
public string Name {get;set;}
}
}