Uso de Reset y ShouldSerialize para controlar una propiedad (Windows Forms .NET)
En este artículo, obtendrá información sobre cómo crear los métodos Reset<PropertyName>
y ShouldSerialize<PropertyName>
para administrar una propiedad para la ventana Propiedades en Visual Studio. Reset
y ShouldSerialize
son métodos opcionales que puede proporcionar para una propiedad, si la propiedad no tiene un valor predeterminado simple. Si la propiedad tiene un valor predeterminado simple, debe aplicar DefaultValueAttribute y proporcionar el valor predeterminado al constructor de la clase de atributos en su lugar. Cualquiera de estos mecanismos habilita las siguientes características en el diseñador:
- La propiedad proporciona una indicación visual en el explorador de propiedades si se ha modificado a partir de su valor predeterminado.
- El usuario puede hacer clic con el botón derecho en la propiedad y elegir Restablecer para restaurar la propiedad a su valor predeterminado.
- El diseñador genera código más eficaz.
Para obtener más información sobre las propiedades, consulte Reset y ShouldSerialize.
Código auxiliar
En este artículo se muestran los métodos Reset
y ShouldSerialize
mediante la creación de un control de rosa de los vientos. Si está trabajando con su propio control de usuario, puede omitir esta sección.
Agregue la siguiente enumeración al código:
public enum Directions { None, North, NorthEast, East, SouthEast, South, SouthWest, West, NorthWest, }
Public Enum Directions None North NorthEast East SouthEast South SouthWest West NorthWest End Enum
Agregue un control de usuario denominado
CompassRose
.Agregue una propiedad denominada
Direction
de tipoDirections
al control de usuario.public Directions Direction { get; set; } = Directions.None;
Public Property Direction As Directions = Directions.None
Reset
El método Reset<PropertyName>
restablece la propiedad <PropertyName>
correspondiente a su valor predeterminado.
El siguiente código restablece la propiedad Direction
a None
, que se considera el valor predeterminado para el control de rosa de los vientos:
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
ShouldSerialize
El método ShouldSerialize<PropertyName>
devuelve un valor booleano que indica si la propiedad de respaldo ha cambiado de su valor predeterminado y debe serializarse en el código del diseñador.
El siguiente código devuelve true cuando la propiedad Direction
no es igual a None
, lo que indica que se ha elegido una dirección:
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
Ejemplo
En el siguiente código se muestran los métodos Reset
y ShouldSerialize
para la propiedad Direction
:
public partial class CompassRose : UserControl
{
public Directions Direction { get; set; } = Directions.None;
public CompassRose() =>
InitializeComponent();
private void ResetDirection() =>
Direction = Directions.None;
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
}
Public Class CompassRose
Public Property Direction As Directions = Directions.None
Private Sub ResetDirection()
Direction = Directions.None
End Sub
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
End Class
.NET Desktop feedback