IUAVariable.VariableChange
Cet événement se produit lorsque change la valeur de la variable de projet à laquelle l’objet C#
IUAVariable
fait référence.event EventHandler<VariableChangeEventArgs> VariableChange;
IMPORTANT:
Si la variable de projet fait référence à une variable de champ, l’événement n’est généré que si la variable de projet est maintenue synchronisée avec le champ via un objet
RemoteVariableSynchronizer
, sauf si un lien avec les entités suivantes existe :- Variable de balise à partir d’un objet graphique
- Objet de l’enregistreur de données
- Alarme
- Objet de schémas de recettes
Dans un tel scénario, dans un NetLogic, vous pouvez abonner la méthode de modification de valeur directement à la variable de balise liée.
Gestionnaire d’événements
Le gestionnaire d’événements
VariableChange
vous permet d’abonner une méthode à l’événement du même nom.public delegate void VariableChange(object sender, VariableChangeEventArgs e);
Arguments du gestionnaire d’événements
- sender(object)
- Objet C# correspondant à l’objet de l’origine du projet de l’événement.
- e(VariableChangeEventArgs)
- Objet C# contenant les propriétés suivantes :
- variable(IUAVariable)
- Variable de projet qui a généré l’événement.
- newValue(UAValue)
- Nouvelle valeur de la variable.
- oldValue(UAValue)
- Valeur précédente de la variable.
- indexes(uint[])
- Uniquement pour les tableaux :Index des cellules du tableau dans lesquelles la valeur a été modifiée.CONSEIL: La propriété est vide si la valeur de chaque cellule est modifiée ou si la variable de projet est scalaire.
Exemple
La méthode
Variable1_VariableChange
est exécutée chaque fois que la variable de projet Variable1
change de valeur.public override void Start() { var variable1 = Project.Current.GetVariable("Model/Variable1"); variable1.VariableChange += Variable1_VariableChange; } private void Variable1_VariableChange(object sender, VariableChangeEventArgs e) { var label1 = Owner.Get<Label>("Label1"); label1.Text = "Value of " + e.Variable.BrowseName + " changed from " + e.OldValue + " to " + e.NewValue; }
Fournir une réponse