A WPF data grid which can generate columns dynamically from its items.