SelectionBoxTemplate allows to choose only one template. What is items collection consists of object of different types? My traditional solution has a set of templates with names {TYPENAME}_ComboCollapsed and {TYPENAME}_ComboExpaned. Its easy to find proper data template using ItemTemplateSelector.
public
override
DataTemplate SelectTemplate(
object
item, DependencyObject container)
{
if
(container ==
null
)
{
// Telerik ???
return
null
;
}
var presenter = container
as
ContentPresenter;
if
(presenter ==
null
)
{
// ???
return
null
;
}
var templateName = presenter.TemplatedParent
is
ComboBox
?
"Collapsed"
:
"Expanded"
;
templateName =
string
.Format(
"{0}_Combo{1}"
, item.GetType().Name, templateName);
return
GetTemplateByName(templateName, presenter);
}