WPF, getting two way binding to work on custom control

Posted by e28Makaveli on Stack Overflow See other posts from Stack Overflow or by e28Makaveli
Published on 2010-04-12T22:07:36Z Indexed on 2010/04/12 22:13 UTC
Read the original article Hit count: 376

Filed under:
|

Two way binding does not work on my custom control with the following internals:

public partial class ColorInputControl { public ColorInputControl() { InitializeComponent(); colorPicker.AddHandler(ColorPicker.SelectedColorChangedEvent, new RoutedPropertyChangedEventHandler( SelectedColorChanged));; colorPicker.AddHandler(ColorPicker.CancelEvent, new RoutedPropertyChangedEventHandler(OnCancel));
}

    public static readonly DependencyProperty SelectedColorProperty =
        DependencyProperty.Register
        ("SelectedColor", typeof(Color), typeof(ColorInputControl),
        new PropertyMetadata(Colors.Transparent, null));



    public Color SelectedColor
    {
        get
        {
            return (Color)GetValue(SelectedColorProperty);
            //return colorPicker.SelectedColor;
        }
        set
        {
            SetValue(SelectedColorProperty, value);
            colorPicker.SelectedColor = value;           
        }
    }

    private void SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color> e)
    {
        SetValue(SelectedColorProperty, colorPicker.SelectedColor);                
    }       

}

SelectedColor is being bound to a property that fires INotifyPropertyChanged event control when it changes. However, I cannot get two way binding to work. Changes from the UI are pesisted to the data source. However, changes originating from the data source are not reflected on the UI.

What did I miss? TIA.

© Stack Overflow or respective owner

Related posts about wpf

Related posts about binding