2010-04-11 4 views
2

2 종속성 속성 사이의 데이터 바인딩을 수행하려고합니다. 나는 이것이 아주 쉬워 져야한다고 생각한다. 어쨌든 나는 그것을 얻지 못한다. 나는 이미 봤지만 나는 정말로 내가 뭘 잘못하고 있는지 알 수 없었다.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

원본은 바인딩 할 속성이 아니라 원본 개체입니다. 작동 방식 :

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

빠른 답장을 보내 주셔서 감사합니다. 어떤 문제없이 작동합니다. 사용할 수있는 경로를 설정하기 위해 myBinding.Path = new PropertyPath (ControlPointProperty); 더 나은 IDE 통합/매개 변수로 문자열 없음. –

관련 문제