/// <summary> /// Поиск элемента с заданным текстом (текущий элемент и его дочерние элементы). /// </summary> /// <param name="text">Текст для поиска.</param> private void Search(string text) { Highlight = Value?.Contains(text) ?? false; foreach (Node subnode in SubNodes) { subnode.Search(text); } if (Parent == null) { OnSearchEnded?.Invoke(); } }
void ChannelSearchEnded(PowerChannel sender, bool isConnected, int deviceNumber) { foreach (var kvp in channels) { if (kvp.Value == sender) { OnSearchEnded?.Invoke(this, kvp.Key, isConnected, deviceNumber); return; } } throw new Exception("channels inconsistency"); }