BetterDP 1.0.0
See the version list below for details.
dotnet add package BetterDP --version 1.0.0
NuGet\Install-Package BetterDP -Version 1.0.0
<PackageReference Include="BetterDP" Version="1.0.0" />
paket add BetterDP --version 1.0.0
#r "nuget: BetterDP, 1.0.0"
// Install BetterDP as a Cake Addin #addin nuget:?package=BetterDP&version=1.0.0 // Install BetterDP as a Cake Tool #tool nuget:?package=BetterDP&version=1.0.0
BetterDP
Simpler declaration for WPF Dependency Properties
About
Dependency Properties are a neat feature of WPF, allowing powerful data binding mechanisms.
However, declaring custom properties is not really straightforward and leads to a lot of boilerplate code.
As an example:
using System.Windows;
public class Foo: DependencyObject
{
public static readonly DependencyProperty BarProperty = DependencyProperty.Register
(
"Bar",
typeof( string ),
typeof( Foo ),
new PropertyMetadata()
);
public string Bar
{
get => this.GetValue( BarProperty ) as string;
set => this.SetValue( BarProperty, value );
}
}
This package provides a way to reduce the amount of code needed to declare such a property, by introducing a custom [DP]
attribute.
The new syntax is then:
using System.Windows;
using BetterDP;
public class Foo: DependencyObject
{
[DP]
public string Bar
{
get => this.Get< string >();
set => this.Set( value );
}
}
Default values
A default value can be provided directly within the [DP]
attribute, such as:
[DP( DefaultValue = "hello, world" )]
public string Bar
{
get => this.Get< string >();
set => this.Set( value );
}
This is the equivalent of setting a default value with PropertyMetadata
or FrameworkPropertyMetadata
.
Change Handlers
In order to be notified when a property has changed, you may implement the following method in your class:
protected virtual void DependencyPropertyDidChange( string name, object value )
{}
It will automatically be called when a property marked with [DP]
has changed.
License
BetterDP is released under the terms of the MIT License.
Repository Infos
Owner: DigiDNA
Web: www.digidna.net
Blog: imazing.com/blog
Twitter: @DigiDNA
GitHub: github.com/DigiDNA
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.