Unplanned
Last Updated: 07 Feb 2020 15:07 by ADMIN

To reproduce this:

  1. Use the .NET Core version of the Telerik dlls.
  2. Set the GroupRenderMode of RadGridView to Flat.
  3. Page RadGridView using RadDataPager.
  4. Scroll to the last row in the view. Or scroll to any row so that few of the rows above are not longer visible.
  5. Expand the row details and scroll down more until only the parent row is visible.
  6. Collapse the row details. At this point, the vertical scrollbar disappears and the upper rows are not brought into the view as expected when the row details gets collapsed.

To work this around call the Rebind() method of RadGridView on RowDetailsVisibilityChanged event.

private void RadGridView_RowDetailsVisibilityChanged(object sender, Telerik.Windows.Controls.GridView.GridViewRowDetailsEventArgs e)
{
	if (e.Visibility == Visibility.Collapsed)
	{
		this.gridView.Rebind();
	}        
}

Unplanned
Last Updated: 05 Feb 2020 13:51 by ADMIN
DataContext of rows is sometimes null when UI virtualization is enabled in the Flat group render mode.
Unplanned
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.Detach();
      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.

Unplanned
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.
Unplanned
Last Updated: 25 Nov 2019 14:00 by ADMIN
Scrollviewer is not updated when row details are collapsed.
Unplanned
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:RadGridView.Columns>
    <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}" />
</telerik:RadGridView.Columns>

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

Unplanned
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

Unplanned
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.
Unplanned
Last Updated: 23 Jul 2019 10:29 by ADMIN
Loading items in RadGridView takes too much time due to operations executed on the UI. 
Unplanned
Last Updated: 11 Mar 2019 14:39 by ADMIN
ADMIN
Created by: Ivan Ivanov
Comments: 0
Category: GridView
Type: Bug Report
2
Unhandled exception System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
   at System.Windows.Threading.Dispatcher.VerifyAccess()
   at System.Windows.DependencyObject.GetValue(DependencyProperty dp)
   at Telerik.Windows.Data.SortDescriptorBase.get_SortDirection()
   at Telerik.Windows.Data.Expressions.SortDescriptorCollectionExpressionBuilder.Sort()
   at Telerik.Windows.Data.QueryableExtensions.Sort(IQueryable source, IEnumerable`1 sortDescriptors)
   at Telerik.Windows.Data.QueryableExtensions.Sort(IQueryable source, SortDescriptorCollection sortDescriptors)
. . .
Unplanned
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.
Unplanned
Last Updated: 08 Feb 2019 08:54 by ADMIN
This happens in the following scenarios:

1. The FilterMemberPath points to the Date property of a DateTime one.
2. The column name contains "[]" square brackets.
Unplanned
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.

Unplanned
Last Updated: 24 Oct 2018 12:52 by Vladimir
Unplanned
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">
            <Setter.Value>
                <ControlTemplate TargetType="telerik:RadPathButton">
                    <Grid Background="Transparent">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="BackgroundVisibility">
                                <VisualState x:Name="BackgroundIsHidden">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="OuterBorder" Storyboard.TargetProperty="Visibility">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="BackgroundIsVisible"/>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <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}"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Foreground" Value="{telerik1:FluentResource ResourceKey=AccentMouseOverBrush}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter Property="Foreground" Value="{telerik1:FluentResource ResourceKey=AccentPressedBrush}"/>
                        </Trigger>
                        <DataTrigger Binding="{Binding IsPinned, RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" Value="True">
                            <Setter TargetName="UnPinIcon" Property="Glyph" Value="{StaticResource GlyphUnpin}" />
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

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

StackTrace:
   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)
Unplanned
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" />
</Style>
1 2 3 4 5 6