x:Shared, attribut
Mise à jour : novembre 2007
Avec la valeur false, il modifie le comportement de récupération de ressources Windows Presentation Foundation (WPF) de manière à ce que des demandes de ressources créent une instance pour chaque demande, au lieu de partager la même instance pour toutes les demandes.
Utilisation des attributs XAML
<ResourceDictionary>
<object x:Shared="false".../>
</ResourceDictionary>
Notes
La condition x:Shared par défaut pour les ressources est true. Cette condition signifie que toute demande de ressource retourne toujours la même instance. La ressource d'origine change en cas de modification d'un objet retourné via une ressource API (ex. FindResource) ou de modification directe d'un objet dans un ResourceDictionary. Si les références à cette ressource étaient des références de ressource dynamiques, les consommateurs de cette ressource obtiendront la ressource modifiée. (Si les références à la ressource étaient des références de ressource statiques, les modifications apportées à la ressource après le temps de traitement XAML sont sans importance. Pour plus d'informations sur les références de ressource statiques et dynamiques, consultez Vue d'ensemble des ressources.)
Il est rare de spécifier x:Shared="true", car il s'agit déjà de la valeur par défaut. Il n'existe aucun code direct équivalent pour x:Shared.
Un scénario pour x:Shared="false" consiste à définir une classe dérivée FrameworkElement ou FrameworkContentElement en tant que ressource et introduire la ressource d'élément dans un modèle de contenu. x:Shared="false" active une ressource d'élément à introduire plusieurs fois dans la même collection (ex. UIElementCollection). Sans x:Shared= "false", ce ne serait pas valide, parce que la collection impose l'unicité de son contenu. Cependant, le comportement x:Shared= "false" crée fondamentalement une autre instance identique de la ressource, au lieu de retourner la même instance.
Un autre scénario pour x:Shared="false" consiste à utiliser une ressource Freezable pour les valeurs d'animation, mais à modifier la ressource sur une base par animation.
La manipulation de chaînes "false" ne respecte pas la casse.
x:Shared est uniquement valide dans les conditions suivantes :
ResourceDictionary qui contient les éléments avec x:Shared doit être compilé. ResourceDictionary ne peut pas être en XAML libre ou utilisé pour des thèmes.
ResourceDictionary qui contient les éléments ne doit pas être imbriqué dans un autre ResourceDictionary. Par exemple, vous ne pouvez pas utiliser x:Shared pour des éléments d'un ResourceDictionary situé dans un Style qui est déjà un élément ResourceDictionary.