void Command_Content_WithAttribute(FindContentAttributeDialog.Result result) => ContentReplaceSelections(GetSelectionNodes().Where(child => child.HasAttr(result.Attribute, result.Regex, result.Invert)));
void Command_Content_Ancestor(FindContentAttributeDialog.Result result) => ContentReplaceSelections(GetSelectionNodes().SelectMany(node => node.Parents()).Where(child => child.HasAttr(result.Attribute, result.Regex, result.Invert)));
public static Result Run(Window parent, List<ParserNode> nodes) { var dialog = new FindContentAttributeDialog(nodes) { Owner = parent }; return dialog.ShowDialog() ? dialog.result : null; }