Laden...

Databinding zwischen 2 Dependency Properties

Letzter Beitrag vor 15 Jahren 3 Posts 1.108 Views
Databinding zwischen 2 Dependency Properties

Hallo,

ich möchte eine Datenbindung zwischen 2 Dependency Properties realisieren, hier zwischen QuadraticBezierSegment.Point1Property (Ziel) und ControlPointProperty (Quelle). Ich habe zurzeit folgenden Code, bei dem ich nicht weiß, was ich falsch mache:

 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)
    }
}

Schonmal vielen Dank für jeden Tipp 😃

versuchst doch mal mit dem Vorschlag von MSDN:


//make a new source
MyData myDataObject = new MyData(DateTime.Now);      
Binding myBinding = new Binding("MyDataProperty");
myBinding.Source = myDataObject;
myText.SetBinding(TextBlock.TextProperty, myBinding);

und Warum ruftst du BindingOperations.Setbinding(...) auf ?

hallo meisteralex,

danke für deine antwort.
habs nun, myBinding.Source muss das sourceobjekt sein, nicht die sourceproperty (die wird per path bzw. konstruktor angegeben). QuadraticBezierSegment stellt keine SetBinding Methode zur Verfügung (da es nicht von Framework oder was das nohmals ein musste erbt), daher BindingOperations.Setbinding(...)