/// <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) { if (value.Is(Keywords.None)) { _properties.Clear(); } else if (value is CSSPrimitiveValue) { var property = value.ToAnimatableIdentifier(); if (property == null) { return(false); } _properties.Clear(); _properties.Add(property); } else if (value is CSSValueList) { var properties = value.AsList(ValueExtensions.ToAnimatableIdentifier); if (properties == null) { return(false); } _properties.Clear(); _properties.AddRange(properties); } else { return(false); } return(true); }