I have to say, I'm not a fan of asking an object what it is, then displaying depending on.

I can't off the top of my head suggest a better pattern, but this doesn't feel right.