Is it possible to use self-referential data to modify menu items? In the example below, using Text and Children field settings I can get it to work but not if I use ItemId, Text, ParentId field settings.
<SfButton @onclick="Update">Update</SfButton>
<br />
<div>Menu A: using Text and Children fields</div>
<SfMenu Items="@MenuItems" @ref="MenuObj">
<MenuFieldSettings Text="@nameof(DataList.Data)" Children="@nameof(DataList.SubDatas)"></MenuFieldSettings>
</SfMenu>
<br />
<div>Menu B: using self-referential data (Id, Text, ParentId fields)</div>
<SfMenu Items="@MenuItems1" @ref="MenuObj1">
<MenuFieldSettings ItemId="Id" Text="Text" ParentId="ParentId"></MenuFieldSettings>
</SfMenu>
@code {
SfMenu<DataList> MenuObj;
SfMenu<DataList1> MenuObj1;
public List<DataList> MenuItems = new List<DataList>
{
new DataList
{
Data = "Company", SubDatas = new List<DataList>
{
new DataList{ Data= "Overview" }
}
}
};
public List<DataList1> MenuItems1 = new List<DataList1>
{
new DataList1{ Id = "parent1", Text = "Company" },
new DataList1{ Id = "parent2", Text = "Company", ParentId = "parent1" }
};
public class DataList
{
public string Data { get; set; }
public List<DataList> SubDatas { get; set; }
}
public class DataList1
{
public string Id { get; set; }
public string Text { get; set; }
public string ParentId { get; set; }
}
public void Update()
{
MenuObj1.Items.Add(new DataList1 {Id = "parent5", Text = "Services" });
MenuObj1.Items.Add(new DataList1 {Id = "parent6", Text = "Consulting", ParentId = "parent5" });
MenuObj.Items.Add(new DataList { Data = "Services", SubDatas = new List<DataList> {new DataList{ Data = "Consulting"}, } });
}
}