@page "/"
@using Microsoft.AspNetCore.Components
@foreach (var sub in subs)
{
<MatButton @ref="@sub.Button"
Label="@sub.SubName"
OnClick="@((_) => OnClick(sub.Button, sub.Menu, sub.SubName))">
</MatButton>
<MatMenu @ref="@sub.Menu">
<MatList>
<MatListItem>@sub.SubName</MatListItem>
</MatList>
</MatMenu>
}
<h1>@text</h1>
<Button @onclick="RefreshMenu">Refresh Menu</Button>
@functions
{
public class Sub
{
public string SubName {set; get;}
public BaseMatButton Button {set; get;}
public BaseMatMenu Menu {set; get;}
}
List<Sub> subs = new List<Sub>
{
new Sub() { SubName="A", Button=null, Menu=null },
new Sub() { SubName="B", Button=null, Menu=null },
new Sub() { SubName="C", Button=null, Menu=null },
};
string text = "";
public void OnClick(BaseMatButton button, BaseMatMenu menu, string sub)
{
text=(menu == null ? "Menu is null" : sub);
menu.OpenAsync(button.Ref);
}
private void RefreshMenu() {
subs = new List<Sub>
{
new Sub() { SubName="A2", Button=null, Menu=null },
new Sub() { SubName="B2", Button=null, Menu=null },
new Sub() { SubName="C2", Button=null, Menu=null },
};
}
}