@page "/" @using MatBlazor <MatList> @foreach(var item in this._dic){ <MatListItem> @item.Value.Description <div style="margin-left: auto; position: relative;"> <span class="material-icons icon-toolbar right hover" @onclick="() => OnClick(item)" @ref="@item.Value.Button">more_vert</span> <MatMenu @ref="@item.Value.Menu" class="menu"> <MatList Class="kebabmenu"> <MatListItem Class="menuItem-Smaller hover-hell" @onclick="() => OnDeleteClick(item)">Delete</MatListItem> </MatList> </MatMenu> </div> </MatListItem> <MatListDivider></MatListDivider> } </MatList> @code{ private Dictionary<Guid, Helper> _dic = new Dictionary<Guid, Helper>(); //Helper class to set the references for the MatList private class Helper { public string Description {get; set;} public ElementReference Button {get; set;} // reference public BaseMatMenu Menu {get; set;} // reference } //Initializes the Dictionary with new Guid's and from 0-9 protected override void OnInitialized() { for(int i = 0; i < 10; i++){ this._dic.Add(Guid.NewGuid(), new Helper() {Description = i.ToString()}); } } private void OnClick(KeyValuePair<Guid, Helper> item) { item.Value.Menu.OpenAsync(item.Value.Button); } private void OnDeleteClick(KeyValuePair<Guid, Helper> item) { this._dic.Remove(item.Key); } }
namespace BlazorFiddleProject { using Microsoft.AspNetCore.Components.Builder; using Microsoft.Extensions.DependencyInjection; public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IComponentsApplicationBuilder app) { app.AddComponent<App>("app"); } } }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width"> <title>BlazorFiddleProject</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="_content/MatBlazor/dist/matBlazor.js"></script> <style> app { } </style> <script type="text/javascript"> </script> </head> <body> <app>Loading...</app> <script src="_framework/blazor.webassembly.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <script src="_content/MatBlazor/dist/matBlazor.js"></script> <link href="_content/MatBlazor/dist/matBlazor.css" rel="stylesheet" /> </body> </html>

Add component

BlazorFiddle was updated from Blazor 0.7 to .NET 6.0. Your old source code could not work. You need to upgrade to latest.