La MSDN lien que vous avez fourni le dit très bien:
Cette méthode est utilisée par un composant
programme définit la valeur
de l'un de ses propres propriétés sans
la désactivation d'une application déclaré
l'utilisation de la propriété. L'
SetCurrentValue méthode modifie le
la valeur effective de la propriété, mais
les déclencheurs existants, les liaisons de données, et
les styles vont continuer à fonctionner.
Supposons que vous êtes en train de rédiger l' TextBox
de contrôle et que vous avez exposé un Text
bien que les gens utilisent souvent comme suit:
<TextBox Text="{Binding SomeProperty}"/>
Dans le code de votre contrôle, si vous appelez SetValue
vous permettra de remplacer la liaison avec tout ce que vous fournissez. Si vous appelez SetCurrentValue
, cependant, sera de s'assurer que la propriété prend la valeur donnée, mais ne les détruisent pas toutes les liaisons.
Au meilleur de ma connaissance, les conseils de Greg est incorrect. Vous devriez toujours utiliser GetValue
/SetValue
de votre CLR wrapper de la propriété. SetCurrentValue
est plus utile dans le cas où vous avez besoin d'une propriété à prendre sur une valeur donnée, mais ne veulent pas remplacer les liaisons, les déclencheurs, ou des styles qui ont été configurés à l'encontre de votre propriété.