У меня небольшая проблема с парой компонентов Blazor на основе matblazor. Я пытаюсь создать автоматически сгенерированное древовидное представление на основе списка объектов с использованием MatNavMenu из matblazor в проекте веб-сборки Blazor.
У меня есть объект с именем Intercalaire, который содержит Id и обнуляемый parentId, которые относятся к родительскому объект intercalaire для создания дерева (если parentID имеет значение null, объект intercalaire находится в root дерева).
Я сделал этот код в своем основном компоненте:
<CascadingValue Name="ListeIntercalaires" Value="@ListeIntercalaires">
<MatNavMenu>
<Treeview interRoot=@null />
</MatNavMenu>
</CascadingValue>
@code{
public List<Intercalaire> ListeIntercalaires = new List<Intercalaire>();
protected override async Task OnInitializedAsync() {
await InitializeListIntercalaire();
//this method call a service which communicate with the server parts and works without problem
}
}
И этот код в моем компоненте Treeview (я пытаюсь сгенерировать его рекурсивно):
<MatNavSubMenu>
<MatNavSubMenuHeader>
<MatNavItem AllowSelection="false">@interRoot?.Name</MatNavItem>
</MatNavSubMenuHeader>
<MatNavSubMenuList>
@foreach (Intercalaire section in interDisplayed) {
if (section != null) {
<Treeview interRoot=@section/>
}
}
</MatNavSubMenuList>
</MatNavSubMenu>
@code {
[CascadingParameter(Name = "ListeIntercalaires")]
public List<Intercalaire> ListeInter { get; set; }
public Intercalaire interRoot { get; set; }
public List<Intercalaire> interDisplayed;
protected override async Task OnInitializedAsync() {
if (interRoot!=null) {
interDisplayed = ListeInter?.Where(o => o.Id_IntercalaireParent == interRoot.Id).ToList();
} else {
interDisplayed = ListeInter?.Where(o => !o.Id_IntercalaireParent.HasValue).ToList();
}
}
}
Моя проблема возникает, когда я пытаюсь его скомпилировать, у меня есть ошибка, которая гласит: «Вызов неоднозначен между следующими методы или свойства: 'RenderTreeBuilder.AddAttribute (int, string, string)' и 'RenderTreeBuilder.AddAttribute (int, string, MulticastDelegate) "
Не могли бы вы мне помочь?