Should bindings contain much or little data?

For example, I have a binding where I display a list of options to the user and the user selects one. For example he selects a Skill. A skill consists of many things, but also a Skillname. Now there are two options:

  • Bind all the data I need to the options (the full skill object). Later, when something is selected, the calling script/event handler can use that Skill object to do whatever it needs to do with it.
  • Only bind minimal data to the VisualElements, for example only an id as well as the Skillname. Then, the calling system/event handler knows how to get all the information it needs with the id.

The first option has a the advantage that the eventhandler etc. does not need to know how to get the Skill through the id. However, in all of my situations up until now this was never relevant. The drawback is that you will need very many binding types. The second option could have relatively generic binding types which work for anything.

I am drawn to the second option but would like to know if there are any opinions on what’s the best practice here.