ネストされたツリー構造の深さを見つけることができるプロパティを作成したいと考えています。以下の静的は、再帰によって深さ/レベルを見つけます。しかし、この関数を静的メソッドではなく、同じクラスのプロパティとして作成することは可能ですか?
public static int GetDepth(MenuGroup contextMenuItems)
{
if (contextMenuItems == null || contextMenuItems.Items.Count == 0)
return 0;
var subMenu = contextMenuItems.Items.Select(b => b as MenuGroup);
if (!subMenu.Any())
return 1;
var subLevel = subMenu.Cast<MenuGroup>().Select(GetDepth);
return !subLevel.Any() ? 1 : subLevel.Max() + 1;
}
コードの詳細: MenuGroupとMenuItemはMenuBaseから派生しています。
MenuGroupObservableCollection<MenuBase> Items
には、子要素として子ノードがあります
MenuItemは、子を持たない leave ノードです。