Я получил это на работу. Это немного сложно, но может помочь другим ....
Итак, у меня есть страница Razor с моим компонентом вверху страницы:
<mycomponent Data="@StuffForComponent"><mycomponent>
С этим определенным свойством:
private List<Something> StuffForComponent {get;} = new List<Something>();
У меня есть сетка с кнопкой в строке. Для этой кнопки определено действие:
[Parameter]
public IList<Action<object>>? Actions { get; set; }
Когда кнопка нажата, она делает все, что должна, а затем вызывает это действие (метод, определенный на моей странице), передавая информацию.
Этот метод проверяет данные, предоставленные кнопкой, и решает, как он будет обновлять список. Как уже упоминалось @dani, он потребовал StateHasChanged ().
Я реализовал как:
private void MyCallbackMethod(object obj)
{
this.StuffForComponent.Clear();
if (obj is SomeType response)
{
InvokeAsync(() =>
{
this.StuffForComponent.Add(response.ValueToInspect
? new Something{ .... }
: new Something{ .... });
this.StateHasChanged();
}).GetAwaiter().GetResult();
}
}
Требуется InvokeAsync, потому что это не основной поток пользовательского интерфейса.