The group header row overlaps the column headers when scrolling to a column that is out of view upon previously resizing the window and the GroupHeaderDisplayMode is Frozen.
If you use the DataGridComboBoxColumn or the DataGridTemplateColumn with a ComboBox in its template, you cannot open the drop down of the ComboBox when you click onto it. This reproduces only if you try to click on the arrow icon that opens the drop down or somewhere in the control where no text is presented. If you have already selected item and some text is displayed, you can click onto the text in order to open the drop down.
This reproduces also if the ComboBox is defined in the RowDetailsTemplate of the DataGrid.
To workaround this, you can subscribe to the Tapped event of ComboBox control and set the Handled property of the event arguments to True. If you use the DataGridComboBoxColumn, you can create a custom class that derives from it and override its CreateEditorContentVisual method. This will allow you to get the ComboBox and subscribe to its event.
public class CustomComboBoxColumn : DataGridComboBoxColumn
{
public override FrameworkElement CreateEditorContentVisual()
{
var comboBox = (ComboBox)base.CreateEditorContentVisual();
comboBox.Unloaded += ComboBox_Unloaded;
comboBox.Tapped += ComboBox_Tapped;
return comboBox;
}
private void ComboBox_Unloaded(object sender, RoutedEventArgs e)
{
var comboBox = (ComboBox)sender;
comboBox.Unloaded -= ComboBox_Unloaded;
comboBox.Tapped -= ComboBox_Tapped;
}
private void ComboBox_Tapped(object sender, Microsoft.UI.Xaml.Input.TappedRoutedEventArgs e)
{
e.Handled = true;
}
}
Remove the space reserved for the sort indicator in the column header, when CanUserSort is False and therefore the sort indicator is not displayed. The current behavior prevents the user to easily center the header text.
To work this around, you can edit the ControlTemplate of DataGridColumnHeader. In the template, you can update the Visibility of the TextBlock with x:Name set to "SortIndicator" when CanUserSort is False.
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 DataGrid ScrollBar is covered by the group header when grouping.
looking the attachment.
If you have already selected item(s) and then click on a new one to select it without holding Shift or Ctrl, the previous selection is cleared. This action should raise SelectionChanged with items in the RemovedItems collection of the event arguments. You can see this behavior in the native ListBox control. Also, this is how the RadDataGrid control is behaving in Single SelectionMode.
However, currently, if the SelectionMode is set to Extended, the RemovedItems collection doesn't contain any items.
The following exception is thrown when expanding row details with a height larger than the row height:
ArgumentOutOfRangeException: "Non-negative number required."
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
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.
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>