Voici l'approche que j'ai tendance à prendre avec ceci.
Créer un nouveau fichier de classe appelée Meta: -
namespace SilverlightApplication1
{
public static class Meta
{
#region SomeValue
public static string GetSomeValue(DependencyObject obj)
{
return (string)obj.GetValue(SomeValueProperty);
}
public static void SetSomeValue(DependencyObject obj, string value)
{
obj.SetValue(SomeValueProperty, value);
}
public static readonly DependencyProperty SomeValueProperty =
DependencyProperty.RegisterAttached("SomeValue", typeof(string), typeof(Meta),
new PropertyMetadata(null));
#end region
#region SomeOtherValue
// Boilerplate code from above.
#end region
}
}
Une valeur peut maintenant être fixé en XAML comme ceci: -
<TextBox x:Name="txt" local:Meta.SomeValue="Hello, World!" />
À un moment donné dans le code cette valeur peut être récupérée avec : -
string value = Meta.GetSomeValue(txt);
Notez que vous ne devez pas tenir à String
que le type de la propriété y Vous pouvez pratiquement utiliser n'importe quel type avec la limitation que si vous pouvez l'attacher en XAML, le type doit être compatible avec la façon dont XAML construit des objets (par exemple nécessite un constructeur par défaut).
Reed, Merci pour la réponse. Bon à savoir c'était dans le cadre. Marquer votre réponse comme 'Correct' – kanchirk