public List<NodeControl> SearchNodeControlsByName(string searchTerm)
{
var output = new List<NodeControl>();
foreach (NodeControl node in GetNodeControls())
{
var originText = node.ViewModelNode.Name;
if (originText.IndexOf(searchTerm, StringComparison.InvariantCultureIgnoreCase) > 0)
{
output.Add(node);
var highlightRegex = new Regex("<Run Foreground='Yellow'>(.*?)</Run>");
TextBlockProperties.SetStyledText(node.NodeText, highlightRegex.Replace(originText, "$1"));
var searchRegex = new Regex(string.Format("({0})", searchTerm), RegexOptions.IgnoreCase);
TextBlockProperties.SetStyledText(node.NodeText,
searchRegex.Replace(originText, "<Run Foreground='Yellow'>$1</Run>"));
}
}
return output;
}