IUAVariable.VariableChange
Este evento tiene lugar cuando cambia el valor de la variable de proyecto a la que hace referencia el objeto C#
IUAVariable
.event EventHandler<VariableChangeEventArgs> VariableChange;
IMPORTANTE:
Si la variable de proyecto hace referencia a una variable de campo, el evento se genera únicamente si la variable del proyecto se mantiene sincronizada con el campo a través de un objeto
RemoteVariableSynchronizer
, a menos que exista un vínculo con las siguientes entidades:- Variable de etiqueta de un objeto gráfico
- Objeto de registrador de datos
- Alarma
- Objeto de esquemas de receta
En esta situación, en un NetLogic, se puede suscribir el método de cambio de valor directamente a la variable de etiqueta vinculada.
Controlador de eventos
El controlador de eventos
VariableChange
le permite suscribirse a un método con el mismo nombre.public delegate void VariableChange(object sender, VariableChangeEventArgs e);
Argumentos del controlador de eventos
- sender(objeto)
- Un objeto C# que corresponde al objeto del origen del proyecto del evento.
- e(VariableChangeEventArgs)
- Un objeto C# que contiene las siguientes propiedades:
- variable(IUAVariable)
- Variable de proyecto que generó el evento.
- newValue(UAValue)
- Nuevo valor de la variable.
- oldValue(UAValue)
- Valor anterior de la variable.
- indexes(uint[])
- Solo para matrices:Índices de las celdas de la matriz en los que ha cambiado el valor.CONSEJO: La propiedad estará vacía si el valor de cada celda cambia o si la variable del proyecto es escalar.
Ejemplo
El método
Variable1_VariableChange
se ejecuta cada vez que cambia el valor de la variable Variable1
del proyecto.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; }
Entregue su opinión