public bool Matches(IStyledObject styledObject) { if (!Selector.Matches(styledObject)) { return(false); } var parent = styledObject.GetStyleParent(); while (parent != null) { if (AnchestorSelector.Matches(parent)) { return(true); } if (DirectChild) { return(false); } parent = parent.GetStyleParent(); } return(false); }