Rieni De Rijke
Top achievements
Rank 1
Rieni De Rijke
asked on 09 Apr 2010, 02:56 PM
When I open an PrintPreviewDialog all works well, but...
...when I change the column-order by dragging a column to an other place, opening of the Printpreview gives an:
System.ArgumentOutOfRangeException: GridViewDataControl_ColumnDisplayIndexOutOfRange.
The same happens in your "RadControls for WPF-Demo": GridView/WPF/Printing:
Change the column-order and click "printpreview".
...when I change the column-order by dragging a column to an other place, opening of the Printpreview gives an:
System.ArgumentOutOfRangeException: GridViewDataControl_ColumnDisplayIndexOutOfRange.
The same happens in your "RadControls for WPF-Demo": GridView/WPF/Printing:
Change the column-order and click "printpreview".
4 Answers, 1 is accepted
0
Rieni De Rijke
Top achievements
Rank 1
answered on 13 Apr 2010, 08:41 PM
My colleges have the same problem with their RadControls for WPF-Demo-Application.
Are we the only ones...?
When I open an PrintPreviewDialog all works well, but...
...when I change the column-order by dragging a column to an other place, opening of the Printpreview gives an:
System.ArgumentOutOfRangeException: GridViewDataControl_ColumnDisplayIndexOutOfRange.
The same happens in your "RadControls for WPF-Demo": GridView/WPF/Printing:
Change the column-order and click "printpreview".
Are we the only ones...?
When I open an PrintPreviewDialog all works well, but...
...when I change the column-order by dragging a column to an other place, opening of the Printpreview gives an:
System.ArgumentOutOfRangeException: GridViewDataControl_ColumnDisplayIndexOutOfRange.
The same happens in your "RadControls for WPF-Demo": GridView/WPF/Printing:
Change the column-order and click "printpreview".
0
Hi,
Here is how to change ToPrintFriendlyGrid method in our example to fix this:
Greetings,
Vlad
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.
Here is how to change ToPrintFriendlyGrid method in our example to fix this:
static GridViewDataControl ToPrintFriendlyGrid(GridViewDataControl source){ RadGridView grid = new RadGridView(); grid.ItemsSource = source.ItemsSource; grid.RowIndicatorVisibility = Visibility.Collapsed; grid.ShowGroupPanel = false; grid.CanUserFreezeColumns = false; grid.IsFilteringAllowed = false; grid.AutoExpandGroups = true; grid.AutoGenerateColumns = false; foreach (GridViewDataColumn column in source.Columns.OfType<GridViewDataColumn>()) { GridViewDataColumn newColumn = new GridViewDataColumn(); newColumn.Width = column.ActualWidth; newColumn.DataMemberBinding = new System.Windows.Data.Binding(column.UniqueName); grid.Columns.Add(newColumn); } foreach (GridViewDataColumn column in grid.Columns.OfType<GridViewDataColumn>()) { GridViewDataColumn sourceColumn = (from c in source.Columns.OfType<GridViewDataColumn>() where c.UniqueName == column.UniqueName select c).FirstOrDefault(); if (sourceColumn != null) { column.DisplayIndex = sourceColumn.DisplayIndex; } } StyleManager.SetTheme(grid, StyleManager.GetTheme(grid)); grid.SortDescriptors.AddRange(source.SortDescriptors); grid.GroupDescriptors.AddRange(source.GroupDescriptors); grid.FilterDescriptors.AddRange(source.FilterDescriptors); return grid;}Greetings,
Vlad
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
Rieni De Rijke
Top achievements
Rank 1
answered on 14 Apr 2010, 06:56 PM
Thank you for the fix!
Now it works fine.
Now it works fine.
0
Paul
Top achievements
Rank 1
answered on 17 Jan 2011, 06:42 PM
The updated code does not work unless all of your columns are data columns. Setting the DisplayIndex of the columns fails otherwise. The following update will work:
int i = 0;
foreach (GridViewDataColumn column in grid.Columns.OfType<GridViewDataColumn>().OrderBy(e => e.DisplayIndex))
{
GridViewDataColumn sourceColumn = (from c in source.Columns.OfType<GridViewDataColumn>()
where c.UniqueName == column.UniqueName
select c).FirstOrDefault();
if (sourceColumn != null)
{
column.DisplayIndex = i;
i++;
}
}
