private void Sort()
{
var list = _children.OfType<SearchTreeViewModel>().ToList();
list.Sort((x, y) =>
{
int c = x.Value.SearchItem.Name.CompareTo(y.Value.SearchItem.Name);
if (c != 0) return c;
c = x.Count.CompareTo(y.Count);
if (c != 0) return c;
return x.GetHashCode().CompareTo(y.GetHashCode());
});
for (int i = 0; i < list.Count; i++)
{
var o = _children.IndexOf(list[i]);
if (i != o) _children.Move(o, i);
}
}