Browse Source

fix: Address Rule AVP1021 Name collision: {type} owns multiple Avalonia properties with the name '{PropertyName}'

```bash
Warning AVP1021 Name collision: Avalonia.Controls.MaskedTextBox owns multiple Avalonia properties with the name 'PasswordChar'  Avalonia.Controls.TextBox.PasswordCharProperty  Avalonia.Controls.MaskedTextBox.PasswordCharProperty Avalonia.Controls (net6.0) .\src\Avalonia.Controls\MaskedTextBox.cs 134 Active
Warning AVP1021 Name collision: Avalonia.Diagnostics.Controls.ThicknessEditor owns multiple Avalonia properties with the name 'Header'  Avalonia.Diagnostics.Controls.ThicknessEditor.HeaderProperty  Avalonia.Diagnostics.Controls.ThicknessEditor.IsPresentProperty Avalonia.Diagnostics (net6.0) .\src\Avalonia.Diagnostics\Diagnostics\Controls\ThicknessEditor.cs 53 Active

```
Giuseppe Lippolis 2 years ago
parent
commit
5f98ec8319

+ 9 - 1
src/Avalonia.Controls/MaskedTextBox.cs

@@ -32,7 +32,9 @@ namespace Avalonia.Controls
              AvaloniaProperty.Register<MaskedTextBox, string?>(nameof(Mask), string.Empty);
 
         public static new readonly StyledProperty<char> PasswordCharProperty =
-             AvaloniaProperty.Register<MaskedTextBox, char>(nameof(PasswordChar), '\0');
+#pragma warning disable AVP1013 // AvaloniaProperty owners should not be added superfluously
+            TextBox.PasswordCharProperty.AddOwner<MaskedTextBox>();
+#pragma warning restore AVP1013 // AvaloniaProperty owners should not be added superfluously
 
         public static readonly StyledProperty<char> PromptCharProperty =
              AvaloniaProperty.Register<MaskedTextBox, char>(nameof(PromptChar), '_');
@@ -51,6 +53,12 @@ namespace Avalonia.Controls
 
         private bool _resetOnSpace = true;
 
+        static MaskedTextBox()
+        {
+            PasswordCharProperty
+                .OverrideDefaultValue<MaskedTextBox>('\0');
+        }
+
         public MaskedTextBox() { }
 
         /// <summary>

+ 1 - 1
src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs

@@ -15,7 +15,7 @@ namespace Avalonia.Diagnostics.Controls
                 (o, v) => o.Header = v);
 
         public static readonly DirectProperty<ThicknessEditor, bool> IsPresentProperty =
-            AvaloniaProperty.RegisterDirect<ThicknessEditor, bool>(nameof(Header), o => o.IsPresent,
+            AvaloniaProperty.RegisterDirect<ThicknessEditor, bool>(nameof(IsPresent), o => o.IsPresent,
                 (o, v) => o.IsPresent = v);
 
         public static readonly DirectProperty<ThicknessEditor, double> LeftProperty =