This is a migrated thread and some comments may be shown as answers.

Horizontal scrolling issue with Q1 2011

3 Answers 79 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Tony
Top achievements
Rank 1
Tony asked on 20 Apr 2011, 11:43 AM

Hi,

We've had issues with horizontal scrolling in our RadGridViews with the Q1 2011 version of the WPF package for .NET 3.5 (both the first one and SP 1).

In our grids that reside inside RadExpanders (if that matters) we have several columns which in lower resolutions requires scrolling horizontally. We bind them as GridViewDataColumns. In some we have DataTemplates, but in most we just do a normal bind using the DataMemberBinding.

Until you start scrolling everything looks fine like it did in Q3 2010 and earlier versions, but when scrolling horizontally by dragging the scrollbar with the mouse especially the smaller columns tend to grow and be very wide instead of keeping the preferred width according to the content of the columns.

So now for the second time we have to revert to Q3 2010 until this gets fixed.

Has something changed which require us to add something to the XAML to make them keep the preferred width or is this a bug that will be fixed in future versions?

3 Answers, 1 is accepted

Sort by
0
Pavel Pavlov
Telerik team
answered on 25 Apr 2011, 01:51 PM
Hello Tony,

Can you please paste some XAML illustrating the setup of grids and columns ( containers , column width presets etc) ? Anything that may help us reproduce the erroneous behavior here would be appreciated.

All the best,
Pavel Pavlov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Tony
Top achievements
Rank 1
answered on 26 Apr 2011, 10:01 AM

Ok, I did a small sample project where I get the same behavior.

The XAML which is a UserControl is bound to the MainWindow using a ContentControl:

<UserControl x:Class="TelerikTest.TestControl"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:t="http://schemas.telerik.com/2008/xaml/presentation"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <t:RadExpander Grid.Row="0" BorderThickness="0,0,0,0" x:Name="SearchResultExpander" IsExpanded="True" VerticalAlignment="Stretch">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <t:RadGridView Grid.Row="0" x:Name="resultGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" 
                        IsSynchronizedWithCurrentItem="True" FontWeight="Normal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" IsReadOnly="True"
                        SelectionMode="Single" >
                    <t:RadGridView.Columns>
                        <t:GridViewDataColumn Header="Col1" DataMemberBinding="{Binding Path=Col1}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col2" DataMemberBinding="{Binding Path=Col2}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col3" DataMemberBinding="{Binding Path=Col3}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col4" DataMemberBinding="{Binding Path=Col4}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col5" DataMemberBinding="{Binding Path=Col5}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col6" DataMemberBinding="{Binding Path=Col6}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col7" DataMemberBinding="{Binding Path=Col7}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col8" DataMemberBinding="{Binding Path=Col8}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col9" DataMemberBinding="{Binding Path=Col9}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col10" DataMemberBinding="{Binding Path=Col10}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col11" DataMemberBinding="{Binding Path=Col11}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col12" DataMemberBinding="{Binding Path=Col12}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col13" DataMemberBinding="{Binding Path=Col13}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col14" DataMemberBinding="{Binding Path=Col14}" ShowDistinctFilters="False" />
                        <t:GridViewDataColumn Header="Col15" DataMemberBinding="{Binding Path=Col15}" ShowDistinctFilters="False" />
                    </t:RadGridView.Columns>
                </t:RadGridView>
            </Grid>
        </t:RadExpander>
    </Grid>
</UserControl>

The code-behind file for this usercontrol looks like this:

using System.Collections.Generic;
  
namespace TelerikTest
{
    public partial class TestControl
    {
        public TestControl()
        {
            InitializeComponent();
            var testData = new List<TestData>();
            for (int i = 0; i < 30; i++)
                testData.Add(new TestData("asfdkj", "asfdasdfj", 100, "afdjasfdasfd", "asdlfjkasdlfjasd", "afkljasfd",
                                          "alfkjasdfasfdafdasdfsafasdfasdfasfdfsaf", "x", "adfasdfasdf", "afdasfdf", "afdjasfdasfd",
                                          "asdlfjkasdlfjasd", "afkljasfd", "afdjasfdasfd", "asdlfjkasdlfjasd"));
            DataContext = testData;
        }
    }
}

...and the testdata class is rather straight-forward:

using System.ComponentModel;
  
namespace TelerikTest
{
    public class TestData : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
  
        public TestData(string col1, string col2, int? col3, string col4, string col5, string col6, string col7, string col8, string col9, 
            string col10, string col11, string col12, string col13, string col14, string col15)
        {
            Col1 = col1;
            Col2 = col2;
            Col3 = col3;
            Col4 = col4;
            Col5 = col5;
            Col6 = col6;
            Col7 = col7;
            Col8 = col8;
            Col9 = col9;
            Col10 = col10;
            Col11 = col11;
            Col12 = col12;
            Col13 = col13;
            Col14 = col14;
            Col15 = col15;
        }
  
        public string Col1 { get; set; }
        public string Col2 { get; set; }
        public int? Col3 { get; set; }
        public string Col4 { get; set; }
        public string Col5 { get; set; }
        public string Col6 { get; set; }
        public string Col7 { get; set; }
        public string Col8 { get; set; }
        public string Col9 { get; set; }
        public string Col10 { get; set; }
        public string Col11 { get; set; }
        public string Col12 { get; set; }
        public string Col13 { get; set; }
        public string Col14 { get; set; }
        public string Col15 { get; set; }
  
        protected virtual void OnPropertyChanged(string propertyName)
        {
            var handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

I have references to the following five Telerik dlls:

  • Telerik.Windows.Controls.Charting.dll
  • Telerik.Windows.Controls.dll
  • Telerik.Windows.Controls.GridView.dll
  • Telerik.Windows.Controls.Input.dll
  • Telerik.Windows.Controls.Navigation.dll
  • Telerik.Windows.Data.dll

When using the 2010.3.1314.35 versions of the dll's it behaves just fine both in this sample and our real application, but with the 2011.1.419.35 version of the dll's scrolling horizontally back and forth makes the width of the columns following Col7 (which is the longest and also the last initially visible column in the grid) to be much too wide.

0
Tsvyatko
Telerik team
answered on 28 Apr 2011, 09:04 AM
Hi Tony,

Thank you for sending us this information. It helped us isolate the problem and currently we are working on solution. We will do our best to address this issue in our next internal build.

I have logged this in our PITS system and updated your telerik points accordingly.

Currently, In order to workaround this, I can suggest to turn off the Column virtualization.

Please, excuse us for the inconvenience caused.

Best wishes,
Tsvyatko
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Tags
GridView
Asked by
Tony
Top achievements
Rank 1
Answers by
Pavel Pavlov
Telerik team
Tony
Top achievements
Rank 1
Tsvyatko
Telerik team
Share this question
or