Make Tile.DisplayIndex property a dependency property so it can be can be set through data binding.
Please provide an event for when a Tile gets moved and/or when a Tile gets placed into a group or removed from a group. Something simple like OnTileMoved with event args pointing to the tile and new values (like updated group) would be peachy. :)
If there is only one tile in a group and its Visibility property is set to Collapsed, the group header does not disappear.