/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(CSSValue value) { var mode = value.ToDecorationLine(); if (mode.HasValue) { _line.Clear(); _line.Add(mode.Value); } else if (value.Is(Keywords.None)) { _line.Clear(); } else if (value is CSSValueList) { var values = (CSSValueList)value; var list = new List <TextDecorationLine>(); foreach (var item in values) { mode = item.ToDecorationLine(); if (mode == null) { return(false); } list.Add(mode.Value); } _line = list; } else { return(false); } return(true); }