J'avais exactement le même problème; VS2010. J'avais une référence à WindowsBase.dll mais j'ai toujours l'erreur. J'ai un projet C# dans la même solution qui utilise ObservableCollection et il compile bien. J'ai finalement compris que c'était lié au fait que j'avais défini le framework .NET ciblé sur V3.5 (le projet MMC et MMC ne supporte pas encore .NET 4.0). J'avais défini le projet C# pour utiliser ".NET V3.5 Client" mais le projet C++ géré était simplement défini sur ".NET V3.5". Il semble que la définition ObservableCollection puisse être trouvée dans la version "client" de WindowsBase.dll mais pas dans la version normale.
En indiquant les choses différemment, le fichier .csproj contenait la ligne suivante mais pas le fichier .vcproj.
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
Lorsque "Client" est spécifié la DLL provient de:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client
Lorsque "Client" n'est pas spécifié la DLL provient de:
C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0
Ajout de la balise "TargetFrameworkProfile" au fichier .vcproj a forcé le compilateur à utiliser la version client de WindowsBase.dll et la compilation réussirait. Je ne peux pas expliquer pourquoi, mais je suis heureux de mettre ce gratte-tête derrière moi.
Lorsque j'ai essayé cela initialement, cela n'a pas fonctionné. Je pense que j'avais besoin de reconstruire le projet. Cependant, cela fonctionne maintenant bien, merci. – jumpalongjim