У меня недавно была та же проблема, когда некоторые дочерние узлы были бы другого и / или смешанного типа:
- TypeA
- TypeA
- TypeA + TypeB
- TypeB
Я решил это, просто введя интерфейс для различных типов, а затемпривязать древовидное представление к интерфейсу:
public interface ITreeNode
{
int Id { get; }
string Name { get; }
IEnumerable<ITreeNode> ChildrenNodes { get; }
}
Html.Kendo().TreeView()
.BindTo(Model.CurrentHierarchy, mappings =>
{
mappings.For<ITreeNode>(binding => binding.ItemDataBound((item, node) =>
{
item.Id = node.Id.ToString();
item.Text = node.Name;
})
.Children(o => o.ChildrenNodes))
});