Dependency Properties

Dependency properties enable advanced property behaviors such as data binding, animation, and styling. However, implementing dependency properties in WPF often requires writing repetitive and error-prone boilerplate code, which can slow down development and introduce bugs.

Metalama.Patterns.Wpf addresses this issue by allowing developers to generate dependency properties directly from C# automatic properties. This eliminates the need for boilerplate code, boosts productivity, and ensures cleaner, more maintainable code.

Metalama.Patterns.Wpf is a production-ready, professionally supported, and open-source aspect library.

Available for WPF only.

Benefits

  • Boost your productivity. Generate dependency properties from C# automatic properties without boilerplate code.
  • Reduce human errors. Eliminate repetitive code that is prone to mistakes.
  • Improve maintainability. Keep your codebase clean and easier to understand.
  • Seamless integration. Works with existing WPF projects without requiring major refactoring.
  • Customization. Easily add validation rules or OnPropertyChanged callbacks tailored to your needs.

Features

  • Integrates with Metalama.Patterns.Contracts to set validation rules without reinventing the wheel.
  • Fully customizable: add your own validation or OnPropertyChanged callbacks.

Example

public partial class FancyTextBlock : UserControl
{
    public FancyTextBlock()
    {
        InitializeComponent();
    }

    [Required]
    [DependencyProperty]
    public string Text { get; set; } = "Hello, world.";

    [DependencyProperty]
    public Brush FancyBorderBrush { get; set; }

    public void OnFancyBorderBrushChanged() { /* Handle changes here. */}
}

Resources