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 scrolling in RadChat feels incosistent and not smooth when having messages with different heights.
To work around this you can modify the ControlTemplate of ChatMessageList in order to set the Background property of the ScrollViewer element to a value different than null. For example, Transparent.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<ResourceDictionary Source="ms-appx:///Telerik.WinUI.Controls/Themes/Generic.xaml"/>
<!-- Other merged dictionaries here -->
</ResourceDictionary.MergedDictionaries>
<!-- Other app resources here -->
<Style TargetType="chat:ChatMessageList" BasedOn="{StaticResource ChatMessageListStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="chat:ChatMessageList">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<!--The background of the Scrollviewer is set here-->
<ScrollViewer x:Name="PART_ScrollViewer"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"
BorderThickness="0"
Background="Transparent">
<ItemsPresenter Margin="{TemplateBinding Padding}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
The list with the RadChat messages disappears when the ImageSource of ImageCardMessage is assigned after the control is loaded.
To work this around, you can pre-set the ImageSource of the image cards using a placeholder image.
Hi Support
I'm using RadDataGrid on several pages in my application. There a pages where the scrollbar does not appear. On some pages it works.
The structure of the pages is similar. What are your suggestions to look for.
Regards,
Hans
Hello, I tried to implement the sample application from your docs. (https://docs.telerik.com/devtools/winui/controls/raddatagrid/row-details)
But it seems to be not working, the detail area is not displayed completely. Only one column.
I have a similar behavior on another application.
Details:
The field filters in the DataGridNumericalFilterControl of DataGridNumericalColumn are using RadNumericBox controls for the input visuals. By default RadNumericBox is limited to values between 0 and 100, which means you cannot enter values outside of this range.
To work this around, you can re-template the DataGridNumericalFilterControl in order to set the Minimum and Maximum properties of the RadNumericBox element to NaN.
<Application
x:Class="App3.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App3" xmlns:telerikDataGrid="using:Telerik.UI.Xaml.Controls.Grid.Primitives" xmlns:telerikInput="using:Telerik.UI.Xaml.Controls.Input">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<ResourceDictionary Source="ms-appx:///Telerik.WinUI.Controls/Themes/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="telerikDataGrid:DataGridNumericalFilterControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="telerikDataGrid:DataGridNumericalFilterControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ComboBox x:Name="PART_OperatorCombo"
HorizontalAlignment="Stretch"
ItemsSource="{Binding OperatorsList}"
SelectedItem="{Binding FilterDescriptor.Operator, Mode=TwoWay, Converter={StaticResource FilterOperatorConverter}}"
DisplayMemberPath="DisplayText">
</ComboBox>
<telerikInput:RadNumericBox x:Name="PART_ValueBox"
Minimum="NaN"
Maximum="NaN"
HorizontalAlignment="Stretch"
Value="{Binding FilterDescriptor.Value, Mode=TwoWay}"
Grid.Row="1" Margin="0 10 0 0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
Dynamically changing the Header of a RadDataGrid column is clearing the header visual's content. This means that you no longer see the header. To reproduce this the SizeMode of the column should be set to Fixed.
To work this around, instead of changing the Header of the column, you can assign the Header initially to a visual element - like TextBox - and change its content (like the Text property). Or alternatively, avoid the Fixed SizeMode.
Exception is raised when zooming is performed.