У меня есть модель вида с свойством Fields, которое является ObservableCollection<FieldVM>. В представлении, которое использует это свойство, у меня есть ItemsControl так:
...
<ItemsControl ItemsSource="{Binding Fields}" />
...
FieldVM - абстрактный класс, реализуемый такими классами, как TextFieldVM и EnumFieldVM. Во время выполнения эти FieldVM -выполнения добавляются в свойство Fields, и я хочу, чтобы они отображались в моем представлении с их соответствующими представлениями.
В WPF это делается просто, я делаю это все время. Вы просто делаете это в соответствующем ресурсном словаре, и все работает так, как ожидалось:
<DataTemplate DataType="{x:Type vm:TextFieldVM}">
<v:TextFieldView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:EnumFieldVM}">
<v:EnumFieldView />
</DataTemplate>
Теперь, работая в Silverlight в первый раз, я ожидал, что могу просто сделать то же самое, но DataTemplate не имеет свойства DataType. Я в тупике. Какой способ Silverlight сделать это?