I have a template selector that I would like to work with the RadPanelBarItem items presenter. Unfortunatley the template is never called. I am doing the following:
<telerik:RadPanelBar Grid.Row="1" x:Name="PART_RAD_PANEL_BAR" Margin="5,5,0,0" ItemsSource="{Binding UpdateSourceTrigger=PropertyChanged, Path=ExperimentCollection.ExperimentTriggerCollection, NotifyOnSourceUpdated=True}" > </telerik:RadPanelBar>And am using the following Style for the RadPanelBarItem (Cut for brevity)
<Style x:Key="PanelBarItemKey" TargetType="{x:Type telerik:RadPanelBarItem}"> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="White" /> <GradientStop Color="Gainsboro" Offset="0.43" /> <GradientStop Color="#FFADADAD" Offset="0.44" /> <GradientStop Color="#FFD4D4D4" Offset="1" /> </LinearGradientBrush> </Setter.Value> </Setter> <Setter Property="BorderBrush" Value="#FF848484" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Foreground" Value="Black" /> <Setter Property="Padding" Value="3" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="HeaderTemplate" Value="{StaticResource PanelBarItemTemplate}" /> <Setter Property="ItemsSource" Value="{Binding SelectedTrigger}" /> <Setter Property="ItemTemplateSelector" Value="{StaticResource TriggerTemplateSelectorKey}" /> <Setter Property="ChildItemsTemplate">
And the following Template Selector:
Public Class TriggerTemplateSelector Inherits DataTemplateSelector Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate If item IsNot Nothing Then Dim et As ExperimentTrigger = CType(item, ExperimentTrigger) Dim element As FrameworkElement element = TryCast(container, FrameworkElement) Select Case et.TriggerType Case "Timer" Return TryCast(element.FindResource("TimerTriggerTemplate"), DataTemplate) Case "Damage" Return TryCast(element.FindResource("TriggerDamageTemplate"), DataTemplate) Case "IED Detonation" Return TryCast(element.FindResource("TriggerDetonationTemplate"), DataTemplate) End Select Else Return Nothing End If Return Nothing End FunctionEnd ClassThe Items in the RadPanelBarItems need to call the template selector which I thought would be called by setting the ItemTemplateSelector in the Style, but this does not seem to be the case. How can I call my template selector in the RadPanelBarItem Style?
I am using the following to link to further illustrate.
If I do the following in XAML the template selector is called but I don't know how many RadPabelBarItems I will have:
<telerik:RadPanelBar Grid.Row="1" Margin="5,5,0,0" > <telerik:RadPanelBarItem Header="Test" Style="{x:Null}" ItemTemplateSelector="{StaticResource TriggerTemplateSelectorKey}" ItemsSource="{Binding UpdateSourceTrigger=PropertyChanged, Path=ExperimentCollection.ExperimentTriggerCollection, NotifyOnSourceUpdated=True}" /></telerik:RadPanelBar>
I have not had any luck with this so I am currently trying to do it procedurally. Is this possible to do this in XAML?
Regards,
Joseph