J'ai deux objets liés à la même dependencyProperty (dans Silverlight). Existe-t-il un moyen de déterminer lequel de ces deux objets a changé la propriété? Je souhaite effectuer différentes actions en fonction de ces informations.Comment déterminer ce qui a changé DependencyProperty
Malheureusement, je ne peux pas attacher deux eventhandlers différents (because it's a dependencyProperty)
public int StartTime
{
get { return (int)GetValue(StartTimeProperty); }
set { SetValue(StartTimeProperty, value); }
}
public static readonly DependencyProperty StartTimeProperty =
DependencyProperty.Register("StartTime", typeof(int), typeof(Step),
new PropertyMetadata(-1, new PropertyChangedCallback(OnStartTimeChanged)));
private static void OnStartTimeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((Step)d).OnStartTimeChanged(e);
}
protected virtual void OnStartTimeChanged(DependencyPropertyChangedEventArgs e)
{
//if set from obj1 -> do something
//if set from obj2 -> do something else
}
Dans cet exemple, je serais Propriété StartTime à partir d'objets différents et je veux savoir lequel de ces objets a changé la propriété.
Merci
Quelle raison avez-vous besoin de savoir quel objet a changé la propriété? Si cela est requis, il semble que les exigences sont un peu incorrectes. Votre contrôle ne devrait pas être impliqué dans ce genre de décisions. –
Eh bien, c'est une longue histoire. La propriété peut être modifiée à partir du serveur (la même propriété est également liée à l'interface utilisateur). Si la propriété a été modifiée par le serveur, elle doit mettre à jour l'interface utilisateur. Si la propriété a été modifiée par l'utilisateur (par interaction avec l'interface utilisateur), elle doit envoyer une mise à jour au serveur. –
Pourquoi ne pas simplement avoir deux DP? –