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. :)
Create a feature in the RadTileList control that allows the user to select multiple tiles, but only one (or maybe, any number - it could be a property that is set for this specific kind of selection) per group.
This was first discussed on this forum thread: https://www.telerik.com/forums/multiple-selection-single-selection-per-group and it's the reason behind this feature request.
The current workaround to overcome this "issue" is also available through that link.
This will allow to have different visual customization for the separate groups.
KeyNotFoundException occurs when you assing the DisplayIndex of a tile group to a value bigger than the groups' count. For example, when you have 3 groups and set the DisplayIndex to 3 or more. If such situation occur it would be expected for the tile list to coerce the value to the closest available index. Similar to how the WPF native attached Grid.Row and Grid.Column properties work.
Exceptions message: KeyNotFoundException: 'The given key '0' was not present in the dictionary.'
System.Private.CoreLib.dll!System.ThrowHelper.ThrowKeyNotFoundException<int>(int key) Unknown
System.Private.CoreLib.dll!System.Collections.Generic.Dictionary<int, int>.this[int].get(int key) Unknown
> Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadTileList.InitializeGroupDisplayIndexes() Line 273 C#
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadTileList.GenerateTileGroups(System.Collections.ObjectModel.ReadOnlyObservableCollection<object> groupsCollection) Line 300 C#
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadTileList.AutoGenerateTiles() Line 690 C#
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadTileList.ResetItemsOnItemsChanged() Line 650 C#
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadTileList.OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Line 616 C#
PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
PresentationFramework.dll!System.Windows.Data.ListCollectionView.RefreshOverride() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.RefreshInternal() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.DeferHelper.Dispose() Unknown
PresentationFramework.dll!System.Windows.Controls.ItemCollection.SetCollectionView(System.Windows.Data.CollectionView view) Unknown
PresentationFramework.dll!System.Windows.Controls.ItemsControl.OnItemsSourceChanged(System.Windows.DependencyObject d, System.Windows.DependencyPropertyChangedEventArgs e) Unknown
PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args) Unknown