Alternativa DataTemplate.DataType en Silverlight
Tengo un modelo de vista con una propiedadFields
que es unObservableCollection<FieldVM>
. En la vista que usa esta propiedad, tengo unItemsControl
al igual que:
...
<ItemsControl ItemsSource="{Binding Fields}" />
...
FieldVM
es una clase abstracta, implementada por clases comoTextFieldVM
yEnumFieldVM
. Durante el tiempo de ejecución, estosFieldVM
-implementaciones se agregan a laFields
propiedad y quiero que aparezcan en mi vista con sus vistas asociadas.
En WPF, hacer esto es simple, lo hago todo el tiempo. Simplemente haga esto en un diccionario de recursos apropiado, y todo funciona como se espera:
<DataTemplate DataType="{x:Type vm:TextFieldVM}">
<v:TextFieldView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:EnumFieldVM}">
<v:EnumFieldView />
</DataTemplate>
Ahora, trabajando en Silverlight por primera vez, esperaba que pudiera hacer lo mismo, pero elDataTemplate
no tiene unDataType
propiedad. Estoy perplejo. ¿Cuál es la forma Silverlight de hacer esto?