DependencyPropertyGenerator 0.15.0
See the version list below for details.
dotnet add package DependencyPropertyGenerator --version 0.15.0
NuGet\Install-Package DependencyPropertyGenerator -Version 0.15.0
<PackageReference Include="DependencyPropertyGenerator" Version="0.15.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="DependencyPropertyGenerator" Version="0.15.0" />
<PackageReference Include="DependencyPropertyGenerator"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add DependencyPropertyGenerator --version 0.15.0
#r "nuget: DependencyPropertyGenerator, 0.15.0"
#:package DependencyPropertyGenerator@0.15.0
#addin nuget:?package=DependencyPropertyGenerator&version=0.15.0
#tool nuget:?package=DependencyPropertyGenerator&version=0.15.0
DependencyPropertyGenerator
Dependency property source generator for WPF/UWP/WinUI/Uno platforms.
Install
Install-Package DependencyPropertyGenerator // Generator
Install-Package DependencyPropertyGenerator.Core // Attributes
Usage
using DependencyPropertyGenerator;
using System.Windows;
using System.Windows.Controls;
#nullable enable
namespace H.Generators.IntegrationTests;
[DependencyProperty<bool>("IsSpinning", DefaultValue = true)]
public partial class MainWindow : Window
{
// Optional
static partial void OnIsSpinningChanged(MainWindow sender, bool oldValue, bool newValue)
{
}
}
[AttachedDependencyProperty<object, TreeView>("SelectedItem", BindsTwoWayByDefault = true)]
public static partial class TreeViewExtensions
{
// Optional
static partial void OnSelectedItemChanged(TreeView sender, object? oldValue, object? newValue)
{
}
}
will generate:
//HintName: MainWindow_DependencyProperties.generated.cs
#nullable enable
namespace H.Generators.IntegrationTests
{
public partial class MainWindow
{
public static readonly global::System.Windows.DependencyProperty IsSpinningProperty =
global::System.Windows.DependencyProperty.Register(
name: "IsSpinning",
propertyType: typeof(bool),
ownerType: typeof(MainWindow),
typeMetadata: new global::System.Windows.FrameworkPropertyMetadata(
true,
global::System.Windows.FrameworkPropertyMetadataOptions.None,
static (sender, args) => OnIsSpinningChanged((MainWindow)sender, (bool)args.OldValue, (bool)args.NewValue)));
public bool IsSpinning
{
get => (bool)GetValue(IsSpinningProperty);
set => SetValue(IsSpinningProperty, value);
}
static partial void OnIsSpinningChanged(MainWindow sender, bool oldValue, bool newValue);
}
}
//HintName: TreeViewExtensions_AttachedDependencyProperties.generated.cs
#nullable enable
namespace H.Generators.IntegrationTests
{
public static partial class TreeViewExtensions
{
public static readonly global::System.Windows.DependencyProperty SelectedItemProperty =
global::System.Windows.DependencyProperty.RegisterAttached(
name: "SelectedItem",
propertyType: typeof(object),
ownerType: typeof(TreeViewExtensions),
defaultMetadata: new global::System.Windows.FrameworkPropertyMetadata(
default(object),
global::System.Windows.FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
static (sender, args) => OnSelectedItemChanged((System.Windows.Controls.TreeView)sender, (object?)args.OldValue, (object?)args.NewValue)));
public static void SetSelectedItem(global::System.Windows.DependencyObject element, object? value)
{
element.SetValue(SelectedItemProperty, value);
}
[global::System.Windows.AttachedPropertyBrowsableForType(typeof(System.Windows.Controls.TreeView))]
public static object? GetSelectedItem(global::System.Windows.DependencyObject element)
{
return (object?)element.GetValue(SelectedItemProperty);
}
static partial void OnSelectedItemChanged(System.Windows.Controls.TreeView sender, object? oldValue, object? newValue);
}
}
Notes
To use generic attributes, you need to set up LangVersion
in your .csproj:
<LangVersion>preview</LangVersion>
There are also non-Generic attributes here.
Support
You can get answers to your questions in my discord support channel:
https://discord.gg/g8u2t9dKgE
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (5)
Showing the top 5 popular GitHub repositories that depend on DependencyPropertyGenerator:
Repository | Stars |
---|---|
helix-toolkit/helix-toolkit
Helix Toolkit is a collection of 3D components for .NET.
|
|
GoldenPotato137/PotatoVN
一款Visual Novel管理软件
|
|
JasonWei512/EnergyStarX
🔋 Improve your Windows 11 device's battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar.
|
|
IviriusCommunity/Rebound
WinUI rewrite project of Windows 11 system apps.
|
|
HavenDV/H.NotifyIcon
TrayIcon for WPF/WinUI/Uno/MAUI
|
Version | Downloads | Last Updated |
---|---|---|
1.5.0 | 10,523 | 1/12/2025 |
1.5.0-beta.2 | 2,289 | 7/23/2024 |
1.5.0-beta.1 | 2,559 | 1/16/2024 |
1.4.0 | 12,249 | 1/5/2024 |
1.4.0-alpha.3 | 326 | 12/4/2023 |
1.4.0-alpha.2 | 110 | 12/1/2023 |
1.4.0-alpha.1 | 97 | 11/30/2023 |
1.3.3 | 3,652 | 11/7/2023 |
1.3.2 | 2,254 | 9/23/2023 |
1.3.1 | 522 | 9/9/2023 |
1.3.0 | 777 | 9/1/2023 |
1.2.12 | 251 | 8/29/2023 |
1.2.11 | 184 | 8/29/2023 |
1.2.8 | 220 | 8/28/2023 |
1.2.7 | 238 | 8/27/2023 |
1.2.6 | 198 | 8/25/2023 |
1.2.5 | 2,351 | 3/24/2023 |
1.2.4 | 839 | 3/14/2023 |
1.2.3 | 718 | 3/11/2023 |
1.2.2 | 380 | 3/10/2023 |
1.2.1 | 332 | 3/9/2023 |
1.2.0 | 314 | 3/8/2023 |
1.1.7 | 313 | 3/6/2023 |
1.1.5 | 472 | 2/14/2023 |
1.1.4 | 475 | 2/2/2023 |
1.1.3 | 362 | 2/2/2023 |
1.1.2 | 702 | 1/28/2023 |
1.1.1 | 407 | 1/27/2023 |
1.1.0 | 385 | 1/27/2023 |
1.0.7 | 418 | 1/18/2023 |
1.0.6 | 517 | 1/9/2023 |
1.0.5 | 350 | 1/9/2023 |
1.0.3 | 2,654 | 8/26/2022 |
1.0.2 | 468 | 8/26/2022 |
1.0.1 | 540 | 8/23/2022 |
1.0.0 | 701 | 8/22/2022 |
0.53.0 | 730 | 8/13/2022 |
0.52.2 | 858 | 7/29/2022 |
0.52.1 | 536 | 7/29/2022 |
0.52.0 | 514 | 7/28/2022 |
0.51.1 | 526 | 7/28/2022 |
0.51.0 | 502 | 7/27/2022 |
0.50.1 | 527 | 7/26/2022 |
0.50.0 | 525 | 7/26/2022 |
0.49.0 | 484 | 7/25/2022 |
0.48.1 | 521 | 7/19/2022 |
0.48.0 | 534 | 7/19/2022 |
0.47.0 | 500 | 7/18/2022 |
0.46.0 | 537 | 7/18/2022 |
0.45.0 | 540 | 7/18/2022 |
0.44.0 | 506 | 7/18/2022 |
0.43.1 | 551 | 7/18/2022 |
0.43.0 | 525 | 7/18/2022 |
0.42.0 | 588 | 7/17/2022 |
0.41.0 | 562 | 7/17/2022 |
0.40.0 | 539 | 7/17/2022 |
0.39.0 | 543 | 7/16/2022 |
0.38.0 | 503 | 7/16/2022 |
0.37.0 | 542 | 7/13/2022 |
0.36.3 | 632 | 7/9/2022 |
0.36.2 | 499 | 7/9/2022 |
0.36.1 | 524 | 7/9/2022 |
0.36.0 | 512 | 7/9/2022 |
0.35.1 | 517 | 7/8/2022 |
0.35.0 | 544 | 7/8/2022 |
0.34.3 | 565 | 7/1/2022 |
0.34.2 | 510 | 7/1/2022 |
0.34.1 | 563 | 6/30/2022 |
0.34.0 | 494 | 6/30/2022 |
0.33.0 | 544 | 6/29/2022 |
0.32.1 | 575 | 6/24/2022 |
0.32.0 | 520 | 6/24/2022 |
0.31.0 | 540 | 6/24/2022 |
0.29.0 | 536 | 6/24/2022 |
0.28.1 | 519 | 6/24/2022 |
0.28.0 | 531 | 6/23/2022 |
0.27.5 | 572 | 6/23/2022 |
0.27.4 | 549 | 6/23/2022 |
0.27.3 | 539 | 6/23/2022 |
0.27.2 | 512 | 6/23/2022 |
0.27.1 | 541 | 6/23/2022 |
0.27.0 | 516 | 6/23/2022 |
0.26.1 | 508 | 6/23/2022 |
0.26.0 | 546 | 6/23/2022 |
0.25.0 | 541 | 6/22/2022 |
0.24.0 | 544 | 6/22/2022 |
0.23.0 | 541 | 6/22/2022 |
0.22.0 | 486 | 6/22/2022 |
0.21.1 | 507 | 6/22/2022 |
0.21.0 | 509 | 6/22/2022 |
0.20.0 | 493 | 6/22/2022 |
0.19.1 | 532 | 6/21/2022 |
0.19.0 | 552 | 6/21/2022 |
0.18.0 | 519 | 6/21/2022 |
0.16.5 | 532 | 6/20/2022 |
0.16.4 | 517 | 6/20/2022 |
0.16.2 | 483 | 6/20/2022 |
0.16.1 | 512 | 6/20/2022 |
0.16.0 | 523 | 6/20/2022 |
0.15.1 | 549 | 6/20/2022 |
0.15.0 | 539 | 6/20/2022 |
0.14.0 | 542 | 6/20/2022 |
0.12.0 | 536 | 6/20/2022 |
0.10.0 | 509 | 6/20/2022 |
0.9.0 | 503 | 6/20/2022 |
0.8.0 | 546 | 6/20/2022 |
0.7.3 | 550 | 6/19/2022 |
0.7.2 | 540 | 6/19/2022 |
0.7.1 | 512 | 6/19/2022 |
0.7.0 | 488 | 6/19/2022 |
0.6.0 | 515 | 6/19/2022 |
0.3.3 | 514 | 6/19/2022 |
0.3.2 | 558 | 6/19/2022 |
0.0.0-beta.274 | 118 | 8/19/2024 |
0.0.0-beta.273 | 106 | 8/19/2024 |
0.0.0-beta.272 | 87 | 8/12/2024 |
0.0.0-beta.271 | 74 | 8/5/2024 |
0.0.0-beta.270 | 81 | 7/29/2024 |
0.0.0-beta.269 | 101 | 7/23/2024 |
⭐ Last 10 features:
Added xml documentation support.
Added xml documentation for attributes.
Added support for all FrameworkPropertyMetadataOptions.
Added nullable annotations.
Added casted oldValue/newValue parameters to OnChanged method.
Added second generic type for AttachedDependencyProperty.BrowsableForType.
Added generic attributes support.
Added BindsTwoWayByDefault support.
Added Attached property BrowsableForType support.
Added default values support.
🐞 Last 10 bug fixes:
Fixed bugs in attribute properties search process.
Added missing AllowMultiple to attributes.
Fixed some Attached properties bugs.
Fixed unused generator reference.
Fixed versioning bug.
Added generate-build-number: false.
Fixed tests.
Fixed initial project settings.