Usare Reset e ShouldSerialize per controllare una proprietà (Windows Form .NET)

Questo articolo illustra come creare i Reset<PropertyName> metodi e ShouldSerialize<PropertyName> per gestire una proprietà per la finestra Proprietà in Visual Studio. Reset e ShouldSerialize sono metodi facoltativi che è possibile fornire per una proprietà, se la proprietà non ha un valore predefinito semplice. Se la proprietà ha un valore predefinito semplice, è necessario applicare e DefaultValueAttribute fornire il valore predefinito al costruttore della classe di attributi. Uno di questi meccanismi abilita le funzionalità seguenti nella finestra di progettazione:

  • La proprietà fornisce indicazioni visive nel browser delle proprietà se è stata modificata dal valore predefinito.
  • L'utente può fare clic con il pulsante destro del mouse sulla proprietà e scegliere Reimposta per ripristinare il valore predefinito della proprietà.
  • La finestra di progettazione genera codice più efficiente.

Per altre informazioni sulle proprietà, vedere Reset and ShouldSerialize.

Codice di supporto

Questo articolo illustra i Reset metodi e ShouldSerialize creando un controllo rosa bussola. Se si usa il proprio controllo utente, è possibile ignorare questa sezione.

  1. Aggiungere l'enumerazione seguente al codice:

    public enum Directions
    {
        None,
        North,
        NorthEast,
        East,
        SouthEast,
        South,
        SouthWest,
        West,
        NorthWest,
    }
    
  2. Aggiungere un controllo utente denominato CompassRose.

  3. Aggiungere una proprietà denominata Direction di tipo Directions al controllo utente.

    public Directions Direction { get; set; } = Directions.None;
    

Reimposta

Il Reset<PropertyName> metodo reimposta la proprietà corrispondente <PropertyName> sul valore predefinito.

Il codice seguente reimposta la Direction proprietà su None, che viene considerato il valore predefinito per il controllo rose della bussola:

private void ResetDirection() =>
    Direction = Directions.None;

ShouldSerialize

Il ShouldSerialize<PropertyName> metodo restituisce un valore booleano che indica se la proprietà di backup è stata modificata dal valore predefinito e deve essere serializzata nel codice della finestra di progettazione.

Il codice seguente restituisce true quando la Direction proprietà non è uguale Nonea , a indicare che è stata scelta una direzione:

private bool ShouldSerializeDirection() =>
    Direction != Directions.None;

Esempio

Il codice seguente illustra i Reset metodi e ShouldSerialize per la Direction proprietà :

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;
}