Jonathon

Right now I am using RadFluidContentControl to know what to display in each tile state. What I am having problems with is performance issues. In my maximized tile state, I have multiple tabs with RadGridViews within each tab. When I take this portion of my code out, everything runs fine, however, when I put this in it loads up my tiles really slowly. I have a lot of tiles being displayed on the screen, and it would be nice if the large content of each tile was not loaded until the user clicked the maximize button. Here is my code:

Zarko

Hello Jonathon,
By design and idea the large content of the RadFluidContentControl shouldn't be loaded until it is needed. I've tested your case and I wasn't able to reproduce the issue so I'd like to ask you for some more code snippets. I've also attached the sample project that I used for testing so you could see that there's no delay on the initial loading in it.
Could you please examine this project and see if you do something differently?

Greetings,
Zarko
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

Jonathon

I copied your files in your project to my project and tried loading and everything ran fine. It most likely is because the data that is being loaded into my tiles is loaded asynchronously, but the data loaded in the tiles in your project is static data. Something we are loading into the large tile view must be causing it to slow down because when I comment out the TileContentLarge, everything loads pretty fast.

Thanks,

Jonathon

Answer

Petar Mladenov

In our project we set the ItemsSource of the GridViews in the constructor "TileContentLarge", do you call your services in this constructor too ? It basically fires for execustes for every RadTileView item, instead you can use the Loaded event like so:

publicTileContentLarge()

{

InitializeComponent();

this.Loaded += newRoutedEventHandler(TileContentLarge_Loaded);

}

voidTileContentLarge_Loaded(objectsender, RoutedEventArgs e)

{

var items = newList<MyItem>();

for(inti = 0; i < 50; i++)

{

items.Add(newMyItem() { Header = i.ToString() });

}

this.One.ItemsSource = items;

this.One2.ItemsSource = items;

this.Two.ItemsSource = items;

this.Two2.ItemsSource = items;

this.Three.ItemsSource = items;

this.Three2.ItemsSource = items;

}

This way you will load the ItemsSource of the GridViews only when a Tile is Maximized.
Please let us know if this helps you.
Kind regards,
Petar Mladenov
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

Jonathon

Thank you for the response. We do not call the services when it is loaded unfortunately because some of the values are used in TileContentRestored view since we have a small grid in the TileContentRestored view. We are testing to see if it is just the way we are loading the data we use.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.