Привязка данных между 2 зависимыми свойствами - PullRequest
2 голосов
/ 12 апреля 2010

Я пытаюсь сделать привязку данных между 2 свойствами зависимости. Я думаю, это должно быть довольно легко, в любом случае, я просто не понимаю. Я уже гуглил, но я не мог понять, что я делаю не так.

Я пытаюсь привязать ControlPointProperty к QuadraticBezierSegment.Point1Property, однако он не работает. Спасибо за любую подсказку!

 class DataBindingTest : DependencyObject
{
    // Dependency Property
    public static readonly DependencyProperty ControlPointProperty;


    // .NET wrapper
    public Point ControlPoint
    {
        get { return (Point)GetValue(DataBindingTest.ControlPointProperty); }
        set { SetValue(DataBindingTest.ControlPointProperty, value); }
    }


    // Register Dependency Property
    static DataBindingTest()
    {
        DataBindingTest.ControlPointProperty = DependencyProperty.Register("ControlPoint", typeof(Point), typeof(DataBindingTest));
    }


    public DataBindingTest()
    {
        QuadraticBezierSegment bezier = new QuadraticBezierSegment();

        // Binding
        Binding myBinding = new Binding();
        myBinding.Source = ControlPointProperty;
        BindingOperations.SetBinding(bezier, QuadraticBezierSegment.Point1Property, myBinding);

        // Test Binding: Change the binding source
        ControlPoint = new Point(1, 1);


        MessageBox.Show(bezier.Point1.ToString()); // gives (0,0), should be (1,1)
    }
}

1 Ответ

1 голос
/ 12 апреля 2010

Источник - это не свойство для привязки, а исходный объект. Это работает:

Binding myBinding = new Binding("ControlPoint");
myBinding.Source = this;
...