Sounds like a job for a custom item delegate.