Pour les besoins du raisonnement, voici une classe simple personneComment puis-je lier à une propriété d'aide dans Silverlight
public class Person : DependencyObject, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public static readonly DependencyProperty FirstNameProperty =
DependencyProperty.Register("FirstName",
typeof (string),
typeof (Person),
null);
public static readonly DependencyProperty LastNameProperty =
DependencyProperty.Register("LastName",
typeof(string),
typeof(Person),
null);
public string FirstName
{
get
{
return (string) GetValue(FirstNameProperty);
}
set
{
SetValue(FirstNameProperty, value);
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("FirstName"));
}
}
public string LastName
{
get
{
return (string) GetValue(LastNameProperty);
}
set
{
SetValue(LastNameProperty, value);
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("LastName"));
}
}
}
Je veux aller sur la création d'une propriété readonly comme celui-ci
public string FullName
{
get { return FirstName + " " + LastName; }
}
Comment fait le travail obligatoire dans ce scénario? J'ai essayé d'ajouter un DependancyProperty et soulevé l'événement PropertyChanged pour le nom complet. Fondamentalement, je veux juste avoir une propriété que je peux lier à qui renvoie le nom complet d'un utilisateur à chaque fois que le prénom ou le nom change. Voici la dernière classe que j'utilise avec les modifications.
public class Person : DependencyObject, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public static readonly DependencyProperty FirstNameProperty =
DependencyProperty.Register("FirstName",
typeof (string),
typeof (Person),
null);
public static readonly DependencyProperty LastNameProperty =
DependencyProperty.Register("LastName",
typeof(string),
typeof(Person),
null);
public static readonly DependencyProperty FullNameProperty =
DependencyProperty.Register("FullName",
typeof(string),
typeof(Person),
null);
public string FirstName
{
get
{
return (string) GetValue(FirstNameProperty);
}
set
{
SetValue(FirstNameProperty, value);
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("FirstName"));
PropertyChanged(this, new PropertyChangedEventArgs("FullName"));
}
}
}
public string LastName
{
get
{
return (string) GetValue(LastNameProperty);
}
set
{
SetValue(LastNameProperty, value);
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("LastName"));
PropertyChanged(this, new PropertyChangedEventArgs("FullName"));
}
}
}
public string FullName
{
get { return GetValue(FirstNameProperty) + " " + GetValue(LastNameProperty); }
}
}
+1, cela ressemble bien moi. – AnthonyWJones
Je suis très nouveau à Binding dans Silverlight. La plupart des exemples que j'ai trouvés utilisent tous DependencyProperty. En plus de cela, je ne pouvais pas vraiment faire fonctionner ma liaison avant d'avoir commencé à utiliser les propriétés de dépendance. L'apprentissage de la liaison Silverlight a été une bataille constante pour moi jusqu'ici. – Matt