PropertyGenerator.Avalonia
1.1.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package PropertyGenerator.Avalonia --version 1.1.0
NuGet\Install-Package PropertyGenerator.Avalonia -Version 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PropertyGenerator.Avalonia" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PropertyGenerator.Avalonia" Version="1.1.0" />
<PackageReference Include="PropertyGenerator.Avalonia" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PropertyGenerator.Avalonia --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PropertyGenerator.Avalonia, 1.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PropertyGenerator.Avalonia@1.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PropertyGenerator.Avalonia&version=1.1.0
#tool nuget:?package=PropertyGenerator.Avalonia&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PropertyGenerator.Avalonia
Auto generate StyledProperty
for Avalonia applications
Usage
[GeneratedStyledProperty]
public partial int Count { get; set; }
Generated code:
StyledProperty<int> CountProperty = AvaloniaProperty.Register<MainWindow, int>(name: nameof(Count));
public partial int Count { get => GetValue(CountProperty); set => SetValue(CountProperty, value); }
[GeneratedStyledProperty(10)]
public partial int Count { get; set; }
Generated code:
Avalonia.StyledProperty<int> CountProperty = AvaloniaProperty.Register<MainWindow, int>(name: nameof(Count), defaultValue: 10);
public partial int Count { get => GetValue(CountProperty); set => SetValue(CountProperty, value); }
[GeneratedStyledProperty(
DefaultValueCallback = nameof(DefaultValueCallback),
DefaultValue = true,
Validate = nameof(Validate),
Coerce = nameof(Coerce),
EnableDataValidation = true,
Inherits = true,
DefaultBindingMode = BindingMode.TwoWay)]
public partial bool? IsStarted { get; set; }
private static bool DefaultValueCallback()
{
return true;
}
private static bool Validate(bool? value)
{
return true;
}
private static bool? Coerce(AvaloniaObject x, bool? y)
{
return true;
}
Generated code:
StyledProperty<bool?> IsStartedProperty = AvaloniaProperty.Register<MainWindow, bool?>(
name: nameof(IsStarted),
defaultValue: DefaultValueCallback(),
validate: Validate,
coerce: Coerce,
enableDataValidation: true,
inherits: true,
defaultBindingMode:BindingMode.TwoWay);
public partial bool? IsStarted { get => GetValue(IsStartedProperty); set => SetValue(IsStartedProperty, value); }
By default, the generator will overrideOnPropertyChanged
at the same time:
partial void OnCountPropertyChanged(int newValue);
partial void OnCountPropertyChanged(int oldValue, int newValue);
partial void OnCountPropertyChanged(AvaloniaPropertyChangedEventArgs e);
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);
switch (change.Property.Name)
{
case nameof(Count):
OnCountPropertyChanged(change);
OnCountPropertyChanged((int)change.NewValue);
OnCountPropertyChanged((int)change.OldValue, (int)change.NewValue);
break;
}
}
To disable this feature, please add DoNotGenerateOnPropertyChangedAttribute
[DoNotGenerateOnPropertyChanged]
public partial class MainWindow : Window
{ ... }
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Avalonia (>= 11.3.0)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.