or
MainWindow.xaml
----------------------
<
Window
x:Class
=
"HiddenColumns.MainWindow"
xmlns:Controls
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Grid
>
<
Controls:RadGridView
x:Name
=
"_mainGrid"
SelectionUnit
=
"FullRow"
SelectionMode
=
"Single"
>
</
Controls:RadGridView
>
</
Grid
>
</
Window
>
MainWindow.xaml.cs
-------------------------
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
namespace HiddenColumns
{
/// <
summary
>
/// Interaction logic for MainWindow.xaml
/// </
summary
>
public partial class MainWindow : Window
{
private DataTable _dataTable;
private GridViewDataColumn _colA;
private GridViewDataColumn _colB;
private GridViewDataColumn _colC;
public MainWindow()
{
InitializeComponent();
Init();
}
private void Init()
{
CreateGrid();
GetDataTable();
FillGrid();
}
private void FillGrid()
{
DataRow row = _dataTable.NewRow();
row["_colA"] = "1";
row["_colB"] = "This is a Dummy Record";
row["_colC"] = "This is Third Column";
_dataTable.Rows.Add(row);
_mainGrid.ItemsSource = _dataTable;
}
private void CreateGrid()
{
_mainGrid.AutoGenerateColumns = false;
if (_colA == null)
{
_colA = new GridViewDataColumn();
}
//
// _ColA
//
_colA.UniqueName = "_colA";
_colA.Header = "Column A";
_colA.IsGroupable = false;
_colA.IsFilterable = false;
_colA.IsReadOnly = true;
_colA.IsVisible = true;
_colA.Width = 100;
if (_colB == null)
{
_colB = new GridViewDataColumn();
}
//
// _colB
//
_colB.UniqueName = "_colB";
_colB.Header = "Column B";
_colB.IsGroupable = false;
_colB.IsFilterable = false;
_colB.IsReadOnly = true;
_colB.IsVisible = false;
//
// _colC
//
if (_colC == null)
{
_colC = new GridViewDataColumn();
}
_colC.UniqueName = "_colC";
_colC.Header = "Column C";
_colC.IsGroupable = false;
_colC.IsFilterable = false;
_colC.IsResizable = false;
_colC.Width = 150;
_mainGrid.Columns.Clear();
_mainGrid.Columns.Add(_colA);
_mainGrid.Columns.Add(_colB);
_mainGrid.Columns.Add(_colC);
//_mainGrid.Width = 480;
_mainGrid.ShowGroupPanel = false;
}
private void GetDataTable()
{
if (_dataTable == null)
{
_dataTable = new DataTable();
}
_dataTable.Columns.Add("_colA");
_dataTable.Columns.Add("_colB");
_dataTable.Columns.Add("_colC");
}
}
}
Hi,
we are using GridView.ToHtml method for Export grid's records.
Depending on records count, we get a System.OutOfMemoryException in this method. (>10000 records throw exception)
We are using 'RadControls for WPF Q2 2009' version.
Are there anyway to improve performance or to avoid this exception?
Best regards!
public
static
readonly
DependencyProperty VisibilityProperty =
DependencyProperty.Register(
"Visibility"
,
typeof
(
bool
),
typeof
(HideRadGridViewColumnBehavior),
new
PropertyMetadata(OnVisibilityPropertyChanged));
private
static
void
OnVisibilityPropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs args)
{
if
(((HideRadGridViewColumnBehavior)target).AssociatedObject ==
null
)
{
MessageBox.Show(
"AssociatedObject is null"
);
}
else
{
var col = ((HideRadGridViewColumnBehavior)target).AssociatedObject
as
GridViewDataColumn;
col.Width = 0;
col.Header =
""
;
col.IsResizable =
false
;
}
}
AssociatedObject
is null, Here is the XAML I am using - hopefully someone can point me in the right direction on this. <
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ModelId}"
Header
=
"ID"
>
<
i:Interaction.Behaviors
>
<
b:HideRadGridViewColumnBehavior
Visibility
=
"{Binding Path=DevMode}"
/>
</
i:Interaction.Behaviors
>
</
telerik:GridViewDataColumn
>
tvDirectory.Items.Add(
"Select/Deselect All"
);
RadTreeViewItem item = (RadTreeViewItem)((RadTreeView)sender).SelectedContainer;
if
(item !=
null
)
{
if
(item.CheckState == ToggleState.On)
{
foreach
(RadTreeViewItem tvItem
in
tvDirectory.Items)
{
tvItem.CheckState = ToggleState.On;
}
}
else
{
foreach
(RadTreeViewItem tvItem
in
tvDirectory.Items)
{
tvItem.CheckState = ToggleState.Off;
}
}
}