Что вам нужно сделать, это создать ResourceDictionary, содержащий несколько определенных шаблонов самостоятельно.Ниже ComboBoxTemplateOne и ComboBoxTeplateTwo - это пользовательские элементы управления, предназначенные для отображения комбинированного списка в выбранной вами усадьбе.
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate x:Key="TemplateOne">
<local:ComboBoxTemplateOne />
</DataTemplate>
<DataTemplate x:Key="TemplateTwo">
<local:ComboBoxTemplateTwo />
</DataTemplate>
</ResourceDictionary>
</UserControl.Resources>
Затем вам нужно будет создать собственный класс, который наследует от ContentControl «DataTemplateSelector»,переопределение OnContentChanged
Protected Overrides Sub OnContentChanged(ByVal oldContent As Object, ByVal newContent As Object)
MyBase.OnContentChanged(oldContent, newContent)
Me.ContentTemplate = SelectTemplate(newContent, Me)
End Sub
Затем вам нужно будет создать другой класс, который наследует от вышеуказанного DataTemplateSelector, который переопределяет SelectTemplate ("TemplateSelectorClass"), который будет возвращать DataTemplate, определенный выше ("TemplateOne" или "TemplateTwo"),Также в этом производном классе вам нужно будет определить свойство для каждого из ваших шаблонов
Public Property ComboboxTemplateOne As DataTemplate
Затем вернитесь к своему XAML и получите удар XAML
<local:TemplateSelectorClass ComboboxTemplateOne="{StaticResource TemplateOne}" Content="{Binding Path=ActiveWorkspace}>
Thisдолжен работать, так как он фактически выполняет ту же работу, что и установка свойства «DataTemplate» в WPF (которого нет в SilverLight). Я понимаю, что здесь есть довольно много шагов, и это довольно сложно, но, надеюсь, это поможет вам,Любые вопросы просто кричите.