Ошибка Blazor RendertreeBuilder с matblazor - PullRequest
0 голосов
/ 06 августа 2020

У меня небольшая проблема с парой компонентов 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) "

Не могли бы вы мне помочь?

...