Share:

DependencyProperty C# | WPF | Saatody | Amit Padhiyar

All property added.

private static object DefaultValue = null;
private static FrameworkPropertyMetadataOptions Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault;
private static PropertyChangedCallback PropertyChangedCallback = OnPropertyChanged;
private static CoerceValueCallback CoerceValueCallback = OnCoerceValue;
private static bool IsAnimationProhibited = false;
private static UpdateSourceTrigger Trigger = UpdateSourceTrigger.PropertyChanged;
private static FrameworkPropertyMetadata PropertyMetadata = new FrameworkPropertyMetadata(DefaultValue, Flags, PropertyChangedCallback, CoerceValueCallback, IsAnimationProhibited, Trigger);

private static string Name = "XYZ";
private static Type PropertyType = typeof(object);
private static Type OwnerType = typeof(object);
private static FrameworkPropertyMetadata FrameworkPropertyMetadata = PropertyMetadata;
private static ValidateValueCallback ValidateValueCallback = OnValidateValue;
public static readonly DependencyProperty XYZProperty = DependencyProperty.Register(Name, PropertyType, OwnerType, FrameworkPropertyMetadata, ValidateValueCallback);

Required Callbacks.

// Trigger third.
private static void OnPropertyChanged(DependencyObject Sender, DependencyPropertyChangedEventArgs E)
{

}

// Trigger second.
private static object OnCoerceValue(DependencyObject Sender, object Value)
{
    return Value;
} // Trigger first and many times. private static bool OnValidateValue(object Value) { return true; }

OnPropertyChanged: Trigger when value changed of property.

OnCoerceValue: Force to change value of property to prevent error, being invalid or exception. Example slider minimum property value can't be greater than maximum property value. In this condition minimum value will be maximum - 1.

OnValidateValue: The callback should return true if the value submitted to the callback is valid, and false otherwise. A false value will produce an exception in the specific portion of the property system where the invalid property set was attempted, so your application should be prepared to handle these exceptions.

You can create new callback methods with new property. Example XYZ property has OnXYZPropertyChanged, OnXYZCoerceValue, and OnXYZValidateValue and ABC property has OnABCPropertyChanged, OnABCCoerceValue, and OnABCValidateValue.

In short form.

private static FrameworkPropertyMetadata XYZPropertyMetadata = new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnPropertyChanged, OnCoerceValue, false, UpdateSourceTrigger.PropertyChanged);
public static readonly DependencyProperty XYZProperty = DependencyProperty.Register("XYZ", typeof(object), typeof(object), XYZPropertyMetadata, OnValidateValue);

Another Short form.

public static readonly DependencyProperty XYZProperty = DependencyProperty.Register("XYZ", typeof(object), typeof(object), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnPropertyChanged, OnCoerceValue, false, UpdateSourceTrigger.PropertyChanged), OnValidateValue);



Comments

Popular posts from this blog

Basic Audio Operations With MP3 And Wave Files Using NAudio C#

Get Color From Pixel C# WPF | Saatody | Amit Padhiyar

Create Drag And Drop Operation Between DevExpress GridControl And Custom WPF UI | Saatody | Amit Padhiyar