private ITreeNode FindSelectable(String oid, IEnumerable<ITreeNode> list = null)
{
if (list == null)
list = Collection.List.OfType<ITreeNode>();
var result = list.FirstOrDefault(f => GetKey(f) == oid);
if (result == null)
{
foreach(var item in list.OfType<ITreeNode>())
{
if (item.Children.Count > 0) {
var inner = FindSelectable(oid, item.Children as IEnumerable<ITreeNode>);
if (inner != null)
return inner;
}
}
}
return result;
}