[WPF] L’attribut x:Shared
Lorsque l’on travaille avec les ressources WPF, chacunes d’entre elle est instanciée une seule fois et c’est cette instance que l’on réutilise à chaque fois (un peu sur le principe du Singleton).
Ainsi, si une ressource est définit de cette façon:
<Window.Resources>
<SolidColorBrush x:Key="brush" Color="Red" />
</Window.Resources>
A chaque fois que l’on va tenter d’y accéder, on accèdera à la même instance:
MessageBox.Show(((SolidColorBrush)this.Resources["brush"]).GetHashCode().ToString());
MessageBox.Show(((SolidColorBrush)this.Resources["brush"]).GetHashCode().ToString());
WPF dispose d’un attribut, nommé x:Shared, et dont la valeur par défaut est True, qu’il est possible d’utiliser lorsque l’on souhaite indiquer au moteur WPF de recréer une nouvelle instance de la ressource à chaque fois que l’on y accède:
<Window.Resources>
<SolidColorBrush x:Key="brush" Color="Red" x:Shared="False" />
</Window.Resources>
Il est cependant à noter qu’il n’existe pas d’équivalent par code pour assigner une telle propriété…
Pour tout savoir sur cet attribut, c’est par ici: http://msdn.microsoft.com/en-us/library/aa970778.aspx
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :