Replace the chart subclass with a datasource binding

This better fits the data-binding model.