Last Updated: 16 Jan 2020 10:45 by ADMIN
There is a bug overriding the method ProvideCommandsForKey(Key key) in DefaultKeyboardCommandProvider.
When pressing F10, the received key is Key.System.

Last Updated: 17 Jan 2020 15:27 by ADMIN

We noticed that RadGridView does not get garbagecollected sometimes.
So i fired up  a memory analyzer to see what is going on.

This is the graph that shows that the RadGridView is causing a leak. The only references that keep the GridView from getting collected are those two WeakEventListeners

To further investigate i decompiled GridViewDataControl and could identify the culprit.

private void SubscribeToDispatcherShutdown()
      if (this.dispatcherShutdownListener != null)
      this.dispatcherShutdownListener = new WeakEventListener<GridViewDataControl, object, EventArgs>(this);
      this.dispatcherShutdownListener.OnEventAction = (Action<GridViewDataControl, object, EventArgs>) ((grid, source, eventArgs) => grid.OnDispatcherShutdownFinished(source, eventArgs));
      this.dispatcherShutdownListener.OnDetachAction = (Action<WeakEventListener<GridViewDataControl, object, EventArgs>>) (weakEventListener => this.Dispatcher.ShutdownFinished -= new EventHandler(this.dispatcherShutdownListener.OnEvent));
      this.Dispatcher.ShutdownFinished += new EventHandler(this.dispatcherShutdownListener.OnEvent);

In the second line from the botton

... weakEventListener => this.Dispatcher.ShutdownFinished -
... you are using 'this.Dispatcher...' which causes the leak since the Action will implicitly capture the 'this' reference.
Which kind of defeats the prupose of having a WeakReference inside your WeakEventListener.

Sadly i cannot figure out how it happens, but i think its only when Detach (FrameworkElement.Unloaded ultimately) is not called.
While this is the actual issue, i thought I'd share this with you so you.

Last Updated: 18 Dec 2019 15:51 by ADMIN

The search box TextBox element used with the search-as-you-type feature is not focused when you press the Tab key. This happens because the search box is excluded from the tab order (IsTabStop=False).

Use the ChildrenOfType extension method to get the TextBox element and set its IsTabStop to True.

private void gridView_Loaded(object sender, RoutedEventArgs e)
	var searchBox = this.gridView.ChildrenOfType<TextBox>().FirstOrDefault(x => x.Name == "PART_SearchAsYouTypeTextBox");
	searchBox.IsTabStop = true;

Last Updated: 18 Dec 2019 15:35 by ADMIN

The ItemsControl that holds the control panel of RadGridView should not be included in the tab order. Its IsTabStop property should be False. Only the items inside of it should be included in the tab order.

To work this around, use the ChildrenOfType extension method to get the ItemsControl and set its IsTabStop property. Optionally, you can exclude also the ControlPanelItemControl elements from the tab order.

private void gridView_Loaded(object sender, RoutedEventArgs e)
	var controlPanel = this.gridView.ChildrenOfType<ItemsControl>().FirstOrDefault(x => x.Name == "PART_ControlPanelItemsControl");
	controlPanel.IsTabStop = false;

Last Updated: 17 Dec 2019 10:06 by ADMIN
When a frozen column is resized to fill the entire RadGridView, there isn't an option to reduce its size in order to bring the other columns into view.
Last Updated: 25 Nov 2019 14:00 by ADMIN
Scrollviewer is not updated when row details are collapsed.
Last Updated: 16 Sep 2019 12:21 by ADMIN

Bind a grid to a DataView

Start editing and change the values of a few cells.

Press Escape twice to cancel the edit of the entire row.

Expected: the values return to the old values

Actual: the values remain the last entered ones

Last Updated: 21 Aug 2019 13:07 by ADMIN
When invalid rows that were loaded but not in viewport get valid, the invalid state (row validation indicator) is still visible.
Last Updated: 19 Aug 2019 13:41 by ADMIN
Last Updated: 23 Jul 2019 10:29 by ADMIN
Loading items in RadGridView takes too much time due to operations executed on the UI. 
Last Updated: 17 Sep 2019 09:28 by ADMIN

If you have the following model, the columns that show the Test and Date properties (in the derived class) cannot be sorted or filtered.


public class RowModel
    public int Id { get; set; }
    public Bar FredBar { get; set; }
public class Fred : Bar
    public DateTime Date { get; set; }
    public string Test { get; set; }
public abstract class Bar
    public string Title { get; set; }
    public double Value { get; set; }       

    <telerik:GridViewDataColumn DataMemberBinding="{Binding Id}" />               
    <telerik:GridViewDataColumn DataMemberBinding="{Binding FredBar.Title}" />
    <telerik:GridViewDataColumn DataMemberBinding="{Binding FredBar.Value}" />
    <telerik:GridViewDataColumn DataMemberBinding="{Binding FredBar.Date}" />
    <telerik:GridViewDataColumn DataMemberBinding="{Binding FredBar.Test}" />

To work this around, set the IsCustomSorting property of the corresponding columns and implement a custom sorting in the Sorting event of RadGridView.

Last Updated: 06 Mar 2019 13:54 by ADMIN
When there are 1000 (reproduce with 500) distinct values in the Popup filter and we try to select all of them it took 15 seconds and more when using ICustomPropertyProvider.
Last Updated: 10 Dec 2018 16:28 by ADMIN
  • Open the GridView examples
  • In the available examples, select "Selection and Usability | Row Details"
  • Select a row in the grid view
  • In the external Details Presenter, select : nothing is displayed in the bottom.
  • You have to select another row and then come back to show the detail.


The fix for this issue will be available with the next LIB (version 2018.3.1217) expected on Monday, December 17.

Last Updated: 24 Oct 2018 12:52 by Vladimir
Last Updated: 04 Sep 2018 12:49 by ADMIN
Setting the theme via the StyleManager.SetTheme(control, theme) method does not style the cell as expected when a CellStyle is defined for its parent column.

The current workaround is to explicitly set the theme via the style:
<Style x:Key="BlueCellStyle" TargetType="telerik:GridViewCell">
		<Setter Property="Background" Value="PowderBlue"/>
                <Setter Property="telerik:StyleManager.Theme" Value="VisualStudio2013" />
Last Updated: 14 Sep 2018 13:58 by ADMIN
As a workaround, the Path with the PathGeometry setter in the style can be replaced by a RadGlyph with a pin icon. The IsPinned Trigger in the style can be replaced with a DataTrigger to the parent row's IsPinned. Here's an example of the updated style for the Fluent theme:

<Style x:Key="GridViewPinButtonStyle" TargetType="grid:GridViewPinButton">
        <Setter Property="PathStyle" Value="{StaticResource PinUnpinPathStyle}"/>
        <Setter Property="Foreground" Value="{telerik1:FluentResource ResourceKey=IconBrush}"/>
        <Setter Property="MinHeight" Value="28"/>
        <Setter Property="MinWidth" Value="22"/>
        <Setter Property="IsBackgroundVisible" Value="False"/>
        <Setter Property="Command" Value="{x:Static telerik:RadGridViewCommands.TogglePinnedRowState}"/>
        <Setter Property="CommandParameter" Value="{Binding}"/>
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="Padding" Value="0 0 2 0"/>
        <Setter Property="Template">
                <ControlTemplate TargetType="telerik:RadPathButton">
                    <Grid Background="Transparent">
                            <VisualStateGroup x:Name="BackgroundVisibility">
                                <VisualState x:Name="BackgroundIsHidden">
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="OuterBorder" Storyboard.TargetProperty="Visibility">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                <VisualState x:Name="BackgroundIsVisible"/>
                        <Border x:Name="OuterBorder"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                Background="{TemplateBinding Background}"
                                CornerRadius="{TemplateBinding CornerRadius}"/>
                        <telerik:RadGlyph x:Name="UnPinIcon" Foreground="{TemplateBinding Foreground}" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Glyph="{StaticResource GlyphPin}"/>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Foreground" Value="{telerik1:FluentResource ResourceKey=AccentMouseOverBrush}"/>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter Property="Foreground" Value="{telerik1:FluentResource ResourceKey=AccentPressedBrush}"/>
                        <DataTrigger Binding="{Binding IsPinned, RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" Value="True">
                            <Setter TargetName="UnPinIcon" Property="Glyph" Value="{StaticResource GlyphUnpin}" />

ArgumentException: 'RadGlyphExtension' is not valid for Setter.Value. The only supported MarkupExtension types are DynamicResourceExtension and BindingBase or derived types.

   at System.Windows.Setter.Seal()
   at System.Windows.SetterBaseCollection.Seal()
   at System.Windows.Style.Seal()
   at System.Windows.Style.Seal()
   at System.Windows.StyleHelper.UpdateStyleCache(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle, Style& styleCache)
   at System.Windows.FrameworkElement.OnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.FrameworkElement.UpdateStyleProperty()
   at System.Windows.FrameworkElement.OnInitialized(EventArgs e)
   at Telerik.Windows.Controls.RadButton.OnInitialized(EventArgs e)
   at Telerik.Windows.Controls.RadPathButton.OnInitialized(EventArgs e)
   at Telerik.Windows.Controls.GridView.GridViewPinButton.OnInitialized(EventArgs e)
   at System.Windows.FrameworkElement.TryFireInitialized()
   at System.Windows.FrameworkElement.EndInit()
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.InitializationGuard(XamlType xamlType, Object obj, Boolean begin)
Last Updated: 21 Aug 2018 11:10 by ADMIN
1 2 3 4 5 6