Backward Compatibility

Q3 2014

  • Panel of RadTileList is TileListGroupPanel rather than TileListPanel

  • Each group is represented by TileGroupContainer rather than ContentControl

  • Group property of Tile is now a TileGroup type rather than just an object

  • Group property of Tile is not settable and you can only read its value

Before:

Example 1: RadTileList before Q3 2014

        <Grid.Resources> 
           <telerik:TileGroup Header="Continent" x:Key="Group1" /> 
           <telerik:TileGroup Header="Country" x:Key="Group2" /> 
        </Grid.Resources> 
        <!--<telerik:RadTileList x:Name="RadTileList" 
                 GroupTemplate="{StaticResource GroupTemplate}"> 
        <telerik:Tile Group="{StaticResource Group1}" Content="Europe" /> 
        <telerik:Tile Group="{StaticResource Group2}" Content="Germany" /> 
        <telerik:Tile Group="{StaticResource Group1}" Content="Asia" /> 
        <telerik:Tile Group="{StaticResource Group2}" Content="Italy" /> 
        </telerik:RadTileList>--> 

After Q3 2014

Example 2: RadTileList after Q3 2014

        <telerik:RadTileList x:Name="RadTileList"> 
            <telerik:RadTileList.Groups> 
                <telerik:TileGroup Header="Continent"> 
                          <telerik:TileGroup.Items> 
                        <telerik:Tile Content="Asia"/> 
                        <telerik:Tile Content="Europe"/> 
                    </telerik:TileGroup.Items> 
                </telerik:TileGroup> 
                <telerik:TileGroup Header="Country"> 
                    <telerik:TileGroup.Items> 
                        <telerik:Tile Content="Italy"/> 
                        <telerik:Tile Content="Germany"/> 
                    </telerik:TileGroup.Items> 
                </telerik:TileGroup> 
            </telerik:RadTileList.Groups> 
        </telerik:RadTileList> 
  • Group property of Tile cannot be set through Style since it can be only read. Since Tile belongs to a group you need to add it in its Items collection when they are manually generated or set GroupMember property of TileList when bound to data source.

  • Since each group is now represented of TileGroupContainer, if you have custom theme, you need to copy the style for this control in the template of RadTileList:

Example 3: Setting a Style for TileGroupContainer

        <DataTemplate x:Key="GroupTemplate"> 
          <ContentPresenter Content="{Binding Header}"/> 
        </DataTemplate> 
        <ItemsPanelTemplate x:Key="GroupPanelTemplate"> 
          <telerik:TileListPanel x:Name="groupPanelTemplatePanel" VerticalAlignment="{Binding VerticalTilesAlignment, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}"/> 
        </ItemsPanelTemplate> 
        <ControlTemplate x:Key="TileGroupContainerTemplate" TargetType="telerik:TileGroupContainer"> 
          <Grid> 
            <Grid.RowDefinitions> 
              <RowDefinition Height="{Binding GroupHeaderHeight, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}"/> 
              <RowDefinition /> 
            </Grid.RowDefinitions> 
            <ContentPresenter Content="{Binding Header}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                      Visibility="{Binding GroupHeaderVisibility, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}" 
                      ContentTemplate="{TemplateBinding HeaderTemplate}"/> 
            <ItemsPresenter Grid.Row="1" /> 
          </Grid> 
        </ControlTemplate> 
        <Style x:Key="TileGroupContainerStyle" TargetType="telerik:TileGroupContainer"> 
          <Setter Property="Template" Value="{StaticResource TileGroupContainerTemplate}" /> 
          <Setter Property="HeaderTemplate" Value="{Binding GroupTemplate, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}" /> 
          <Setter Property="ItemsPanel" Value="{StaticResource GroupPanelTemplate}" /> 
          <Setter Property="ItemsSource" Value="{Binding Items}" /> 
          <Setter Property="Padding" Value="5,0,0,0"/> 
          <Setter Property="Header" Value="{Binding Header}" /> 
          <Setter Property="VerticalContentAlignment" Value="Center"/> 
          <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
          <Setter Property="UseLayoutRounding" Value="True"/> 
        </Style> 
  • If you have custom theme, you need to update the panel of RadTileList and it should be:

Example 4: Updating the panel of RadTileList

        <ItemsPanelTemplate x:Key="RadTileListItemsPanelTemplate"> 
          <telerik:TileListGroupPanel/> 
        </ItemsPanelTemplate> 
  • HorizontalScrollBarVisibility property of ScrollViewer is set to Auto and there is no need to set it explicitly in the definition of RadTileList

  • There is GroupTemplate by default and it is not necessary to declare it explicitly in order to see the groups

  • Default value of TileListPanel property Padding is changed to new Thickness(0, 0, 0, 0) rather than Thickness(0, 30, 0, 0)

In this article