IndexOutOfRangeException occurs in some situations when updating the ItemsSource collection of RadDataGrid. In order to reproduce the issue, the ItemsSource collection should be cleared by calling its Clear method. When you add a specific number of items after that the error occurs. The number of added items depends on the viewport's height.
To work this around, instead of calling the Clear() method of the ItemsSource collection, remove the items one by one.
var collection = (ObservableCollection<MyModel>)this.dg.ItemsSource;
while (collection.Count > 0)
{
collection.RemoveAt(collection.Count - 1);
}
The following exception is thrown when expanding row details with a height larger than the row height:
ArgumentOutOfRangeException: "Non-negative number required."
Currently, the Save and Cancel words in the inline editor buttons are using hardcoded strings. Add LocalizationManager support in order to allow easier customization when translating the application.
In the meantime, you can achieve this effect by extracting the templates of the buttons and replace the hardoced text with LocalizationManager.
<Application
x:Class="TelerikWinUIApp7.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localPrimitives="using:Telerik.UI.Xaml.Controls.Grid.Primitives"
xmlns:primitivesCommon="using:Telerik.UI.Xaml.Controls.Primitives.Common"
xmlns:core="using:Telerik.Core"
xmlns:local="using:TelerikWinUIApp7">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Other merged dictionaries here -->
<ResourceDictionary Source="ms-appx:///Telerik.WinUI.Controls/Themes/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!-- Other app resources here -->
<Style TargetType="localPrimitives:DataGridEditRow">
<Setter Property="CommitButtonStyle">
<Setter.Value>
<Style TargetType="primitivesCommon:InlineButton" BasedOn="{StaticResource EditRowButtonBaseStyle}">
<Setter Property="BorderThickness" Value="1 1 0 1" />
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text=""
FontFamily="{ThemeResource SymbolThemeFontFamily}"
VerticalAlignment="Center"
Margin="15 0 0 0"/>
<TextBlock core:LocalizationManager.Key="Save"
core:LocalizationManager.PropertyName="Text" Margin="8 0 15 0"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="CancelButtonStyle">
<Setter.Value>
<Style TargetType="primitivesCommon:InlineButton" BasedOn="{StaticResource EditRowButtonBaseStyle}">
<Setter Property="BorderThickness" Value="0 1 1 1" />
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text=""
FontFamily="{ThemeResource SymbolThemeFontFamily}"
VerticalAlignment="Center"
Margin="15 0 8 0"/>
<TextBlock core:LocalizationManager.Key="Cancel"
core:LocalizationManager.PropertyName="Text" Margin="0 0 15 0" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
The DataGrid ScrollBar is covered by the group header when grouping.
looking the attachment.