Ok so have tested this and works as per your diagram in the comments below. Row class. Public class Row {. Private ObservableCollection<Item> columns = new ObservableCollection<Item>(); Public Row(params Item[] items) {.