У меня есть модель представления со свойством 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-способ сделать это?