Yes.
No.
Aside from the error spotted by rickbsgu which probably happend when you simplied the code for pasting, and the ever growing channel list which probably has the same cause, this looks quite OK.
Normally you wouldn't depend on a certain type of model inside a delegate but that is OK as well.
Is your channels getter function being called?
Are ChannelEntry {} instance being created?
Cheers,
_
Bookmarks