2013-03-17 4 views
2

사용자 클래스 인 MyPerson이 있습니다. 모든 (관련) 속성은 INotifyPropertyChanged를 구현합니다. 표시하기 위해 UserControl을 만들었고 모두 잘 동작했습니다. MyPerson.FirstName (문자열)과 같은 속성에 대한 바인딩은 모두 작동합니다. 이들은 예상대로 표시하고 업데이트합니다 (양방향 바인딩).DependencyProperty로 사용자 지정 개체

이제 Codebehind에서 좀 더 복잡한 작업을 수행하고자하므로 MyPerson의 PropertyType으로 DependencyProperty를 만들고 싶었지만 DependencyProperty, 특히 PropertyChangedCallback 부분을 생성하는 방법을 잘 모르겠습니다.

이 작업을 수행 할 수 있습니까? 어떻게 그렇게? 이 문서에 대한

+1

MSDN 문서는이 자체를 보여줍니다. http://msdn.microsoft.com/en-gb/library/ms753358.aspx "속성 시스템에 속성 등록"섹션으로 스크롤하면 "AquariumObject"유형으로 등록 된 사용자 지정 DP가 콜백 "OnUriChanged"변경됨 – Viv

답변

0

읽기 - 같은 Custom Dependency Properties

뭔가 -

public static readonly DependencyProperty MyPersonValueProperty = 
     DependencyProperty.Register("MyPersonValue", typeof(MyPerson), 
     typeof(MyPersonControl), new FrameworkPropertyMetadata(null, 
      FrameworkPropertyMetadataOptions.AffectsRender, 
       new PropertyChangedCallback(OnPersonChanged))); 

public MyPerson ThePerson 
{ 
    get { return (MyPerson)GetValue(MyPersonValueProperty); } 
    set { SetValue(MyPersonValueProperty, value); } 
} 

private static void OnPersonChanged(DependencyObject d, 
           DependencyPropertyChangedEventArgs e) 
{ 
    // Property change code here 
} 
+0

감사합니다! 공공 정적 판독 전용 DependencyProperty에 MyPersonValueProperty = DependencyProperty.Register ( "MyPersonValue" 대해서 typeof (MyPerson) 대해서 typeof (MyPersonControl) 새로운 FrameworkPropertyMetadata (NULL, FrameworkPropertyMetadataOptions.AffectsRender, 새로운 PropertyChangedCallback (OnUriChanged) ) ); 및 공용 MyPerson ThePerson { get {return (MyPerson) GetValue (MyPersonValueProperty); } set {SetValue (MyPersonValueProperty, value); } } 내가 필요한 전부였습니다. – ausgeorge

+0

링크 전용 답변 문제 ... 링크가 죽었습니다. – Jonesopolis

+0

@Jonesy - 일부 샘플로 업데이트되어 링크도 업데이트되었습니다. 감사. –