Я в своем уме с этим, я плагин для всех видов методов в Интернете, но, кажется, никуда не денется.
У меня есть общий компонент, в этом case компонент, который имитирует представление списка из эпохи веб-форм. Я хотел бы, чтобы все будущие разработчики внедрили представление списка в проекты и смогли создать собственный набор кнопок, которые будут добавляться к каждой строке (этот бит я могу заставить работать нормально). Проблема в том, что я могу назначить пользовательский обработчик действий каждой кнопке для запуска метода в родительском компоненте представления списка. У меня есть такой класс:
using System;
namespace Speedy.Razor.SharedComponents.WebFormComponents.Shared
{
public class CustomAction
{
public string Name { get; set; }
public string Icon { get; set; }
public Action<int> OnClick { get; set; }
}
}
Который я применяю к строке следующим образом:
foreach (var customAction in CustomActions)
{
<span class="@customAction.Icon" @onclick='() => customAction.OnClick(obj.Id)'></span>
}
Который работает нормально.
Тогда я пытаюсь создать список пользовательских действий, как показано ниже:
List<CustomAction> customActions = new List<CustomAction>()
{
new CustomAction {Name = "Edit", Icon="oi oi-pencil", OnClick = },
new CustomAction {Name = "Contacts", Icon="oi oi-person", OnClick = }
};
Я пробовал делегатов, но не могу запустить требуемые методы, если это не stati c, что мне не нужно; или мне нужно создать ссылку на класс, который вызывает проблемы в Blazor, поскольку новая ссылка на класс в компоненте приводит к сбою StateHasChanged.
Есть идеи?
Спасибо