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