It's fine, but I'd want to do some bounds checking on the array, as if someone adds another ButtonState, you'll have a problem.
Also, the elements of the colors array are immutable, so maybe look at using a different collection to array so that you can enforce that immutability. Maybe a Dictionary