2010-07-14 5 views
0

Il existe une interface:Utilisation des collections génériques utilisateur Silverlight Contrôles

public interface IFoo { 
} 

Un contrôle utilisateur Silverlight a une collection de IFoo instances:

public ObservableCollection<IFoo> Items { get; set; } 

Il y a une classe abstraite qui implémente l'interface:

abstract public class Foo : IFoo {} 

Et une classe qui dérive de cela:

public class DerivedFoo : Foo {} 


Avec tout cela dit, je suis en train d'ajouter des instances de DerivedFoo dans la collection du contrôle via XAML, mais je reçois une erreur qui DerivedFoo est pas de type IFoo et ne peut pas être utilisé dans le générique collection.

J'ai trouvé un message dans un forum qui disait que c'était un bug dans Silverlight 3 mais qui serait corrigé (j'utilise Silverlight 4). Est-ce toujours un bug ou est-ce que je vais mal à propos de ça?

Mise à jour: Mon code est à la maison et je suis au travail, donc je ne peux pas poster la XAML réelle, mais de la mémoire, il était le long des lignes de:

<my:Thing> 
    <my:Thing.Items> 
     <my:DerivedFoo ... /> 
    </my:Thing.Items> 
</my:Thing> 
+0

Pouvez-vous publier votre XAML où vous ajoutez des instances à la collection? –

+0

Cela devrait fonctionner dans Silverlight 4 et son nouvel analyseur XAML. Pouvez-vous vérifier la version? –

+0

Oui, la version Silverlight cible du projet est répertoriée comme "Silverlight 4". – redman

Répondre

1

La réponse est ...

Le gestionnaire d'événements CollectionChanged pour la collection générique a mal converti pendant l'action Ajouter.

Questions connexes