I'm doing it because the internet told me to...of course.

At first, I thought I had a reason to do it this way, because I thought that the set of columns would be variable, which meant that adding them at binding would make more sense. Having played around with the design, I realized that is not what I wanted to do. The set of columns is now fixed, with only the visibility of some of them being toggled. That makes adding the columns in the designer much more reasonable, so I'll make that change.