Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du skapar metoderna Reset<PropertyName> och ShouldSerialize<PropertyName> för att hantera en egenskap för fönstret Egenskaper i Visual Studio.
Reset och ShouldSerialize är valfria metoder som du kan ange för en egenskap, om egenskapen inte har ett enkelt standardvärde. Om egenskapen har ett enkelt standardvärde bör du använda DefaultValueAttribute och ange standardvärdet för attributklasskonstruktorn i stället. Någon av dessa mekanismer möjliggör följande funktioner i designern:
- Egenskapen ger visuell indikation i egenskapswebbläsaren om den har ändrats från standardvärdet.
- Användaren kan högerklicka på egenskapen och välja Återställ för att återställa egenskapen till standardvärdet.
- Designern genererar effektivare kod.
Mer information om egenskaper finns i Reset and ShouldSerialize.
Stödkod
Den här artikeln visar metoderna Reset och ShouldSerialize genom att skapa en kontroll för kompassros. Om du arbetar med din egen användarkontroll kan du hoppa över det här avsnittet.
Lägg till följande uppräkning i koden:
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 EnumLägg till en användarkontroll med namnet
CompassRose.Lägg till en egenskap med namnet
Directionav typenDirectionstill användarkontrollen.public Directions Direction { get; set; } = Directions.None;Public Property Direction As Directions = Directions.None
Återställ
Metoden Reset<PropertyName> återställer motsvarande egenskap för <PropertyName> till standardvärdet.
Följande kod återställer egenskapen Direction till None, som anses vara standardvärdet för kompass rose-kontrollen:
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
ShouldSerialize
Metoden ShouldSerialize<PropertyName> returnerar ett booleskt värde som anger om egenskapen backing har ändrats från standardvärdet och ska serialiseras till designerns kod.
Följande kod returnerar true när egenskapen Direction inte är lika med None, vilket anger att en riktning har valts:
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
Exempel
Följande kod visar metoderna Reset och ShouldSerialize för egenskapen 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