In Development
Last Updated: 28 May 2020 11:39 by ADMIN

When RadGridView is bound to a collection of 60 000 records the difference in the sorting time between using a ProBindingSource and a DataTable is massive. Changes in any core logic in both internal implementations, RadGridView and ProBindingSource, isn't so easy as it looks. Both products have been for a very long time on the market designed to cover the main scenarios of the target customers groups for which they are developed.

By default, if the rows count is less than 10 000 we use quick sort to order the items in the grid. If there are more items we use Red-Black tree. This is controlled by the UseHybridIndex property.  

(radGridView.MasterTemplate.ListSource.CollectionView as GridDataView).UseHybridIndex = false;

However, both of algorithms use non-linear data access. If the ProBindingSource is not optimized to get data not linearly, the performance wouldn't be satisfactory. 

That is why we have introduced the BypassSort functionality to cover this case after cooperation with the OE developers. Thus, our RadGridView won't perform any logic for sorting and the whole time necessary for sorting will depend on the DataSource itself (ProBindingSource in your case) and how this collection sorts its items: https://docs.telerik.com/devtools/winforms/controls/gridview/sorting/basic-sorting 

In the current version of Telerik UI for WinForms suite, the BypassSort property is ignored if the BypassFilter is not set to true as well. Hence, the sorting will be still slow.

Both properties shouldn't affect each other and if a developer wants to improve only the sorting performance, it is expected to enable only the ByPassSort property.

 

In Development
Last Updated: 27 May 2020 15:57 by ADMIN

Dear Support,

I want to use the new feature - Support for SVG.

Then I have to load the file with RadSvgImage.FromFile().

I get the following exception:

System.Xml.XmlException: 'External DTD subset cannot be resolved - public ID =' - // W3C // DTD SVG 1.1 // EN ', system ID =' http://www.w3.org/Graphics/ SVG / 1.1 / DTD / svg11.dtd '.'

(Translated from German)

Problem is line 2, where the DTD is given.

Is there a way to tell XmlSerializer to ignore the validation?

In Development
Last Updated: 27 Jun 2019 06:50 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    CultureInfo culture = new CultureInfo("en-US");
    culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
    this.radScheduler1.Culture = culture;
    this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Month;

    Appointment a = new Appointment(new DateTime(2016, 8, 29, 0, 0, 0), new DateTime(2016, 9, 5, 0, 0, 0), "Meeting");

    this.radScheduler1.Appointments.Add(a);

    this.radScheduler1.FocusedDate = new DateTime(2016, 9, 1);
}

Please refer to the attached gif file.
In Development
Last Updated: 08 Feb 2019 15:36 by ADMIN
In Development
Last Updated: 19 Jun 2017 12:54 by ADMIN
To reproduce: please refer to the attached sample project and gif file.

Workaround: use the CellFormatting event and apply the light orange BackColor for the selected cells belonging to the current pinned column:

private void radGridView1_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    if (e.Row.IsSelected && e.Column.IsCurrent)
    {
        e.CellElement.BackColor = Color.FromArgb(255, 231, 174);
    }
    else
    { 
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
    }
}
In Development
Last Updated: 07 Apr 2015 16:46 by ADMIN
To reproduce:
- Add RadDropDownButton to a blank form.
- Set its anchor property to top, right and its AutoSize property to true.
- At runtime set the button text to a long string, you will notice that the button is resized to the right when it should be resized to the left.

To workaround this you can subscribe to the SizeChanged event of the button change its location depending on the new size:
Size prevSize;

public Form1()
{
    InitializeComponent();
    radDropDownButton1.AutoSize = true;

    this.Shown += Form1_Shown;
}

void Form1_Shown(object sender, EventArgs e)
{
    prevSize = radDropDownButton1.Size;

    radDropDownButton1.SizeChanged += radDropDownButton1_SizeChanged;
}

void radDropDownButton1_SizeChanged(object sender, EventArgs e)
{
    RadDropDownButton button = sender as RadDropDownButton;
    button.Location = new Point(button.Location.X - (radDropDownButton1.Size.Width - prevSize.Width), button.Location.Y);
    prevSize = button.Size;
    
}

private void radButton2_Click(object sender, EventArgs e)
{
    radDropDownButton1.Text = "Very long button text set";
}