Hi,
I have encountered a performance issue when adding gridView inside RadTileItem.
CPU starts spinning and process starts to consume lots of memory, until it reaches 2GBs and eventually crashes.
Attached is a snippet from a demo application which presents a standalone gridview performance (which works fine), and the same gridview inside RadTileItem.
XAML:
Code Behind:
Thank you very much,
Ruben.
I have encountered a performance issue when adding gridView inside RadTileItem.
CPU starts spinning and process starts to consume lots of memory, until it reaches 2GBs and eventually crashes.
Attached is a snippet from a demo application which presents a standalone gridview performance (which works fine), and the same gridview inside RadTileItem.
XAML:
<telerik:RadTileView Grid.Row="1"> |
<telerik:RadTileViewItem Header="ABC"> |
<telerik:RadFluidContentControl> |
<telerik:RadFluidContentControl.Content> |
<TextBlock Text="Maximize this tile." /> |
</telerik:RadFluidContentControl.Content> |
<telerik:RadFluidContentControl.SmallContent> |
<TextBlock Text="Maximize this tile." /> |
</telerik:RadFluidContentControl.SmallContent> |
<telerik:RadFluidContentControl.LargeContent> |
<Grid> |
<Grid.RowDefinitions> |
<RowDefinition Height="Auto" /> |
<RowDefinition /> |
</Grid.RowDefinitions> |
<Button Height="20" Content="Generate" Click="Button_Click" /> |
<telerik:RadGridView Name="telerikGrid" Grid.Row="1" |
ItemsSource="{Binding Persons, Mode=OneWay}" |
IsReadOnly="True" |
AutoGenerateColumns="False"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn DataMemberBinding="{Binding Path=ID, Mode=OneWay}" Header="ID" IsGroupable="False" IsFilterable="False" /> |
<telerik:GridViewDataColumn DataMemberBinding="{Binding Path=Name, Mode=OneWay}" Header="Name" IsGroupable="False" IsFilterable="False" /> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
</Grid> |
</telerik:RadFluidContentControl.LargeContent> |
</telerik:RadFluidContentControl> |
</telerik:RadTileViewItem> |
</telerik:RadTileView> |
Code Behind:
public partial class GridControl : UserControl |
{ |
public GridControl() |
{ |
InitializeComponent(); |
this.DataContext = new ViewModel(); |
} |
private void Button_Click(object sender, RoutedEventArgs e) |
{ |
var list = new List<Person>(); |
for (int i = 0; i < 10000; i++) |
{ |
list.Add(new Person(i, "abc")); |
} |
(this.DataContext as ViewModel).Persons = list; |
} |
} |
public class ViewModel : INotifyPropertyChanged |
{ |
private List<Person> _persons = null; |
public List<Person> Persons |
{ |
get { return _persons; } |
set { _persons = value; OnPropertyChanged("Persons"); } |
} |
#region INotifyPropertyChanged Members |
public event PropertyChangedEventHandler PropertyChanged; |
private void OnPropertyChanged(string propertyName) |
{ |
if (PropertyChanged != null) |
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
} |
#endregion |
} |
public class Person |
{ |
private int _id; |
private string _name; |
public Person(int id, string name) |
{ |
_id = id; |
_name = name; |
} |
public int ID |
{ |
get { return _id; } |
} |
public string Name |
{ |
get { return _name; } |
} |
} |
Thank you very much,
Ruben.