다른 컨트롤 (예 : MyCustomButton)을 래핑하는 사용자 지정 컨트롤이 있다고 가정 해 봅니다. 나는 내부 통제 랩하는 속성 내용, 노출 :종속 종속성 속성
위해public object Content
{
get { return innerControl.Content; }
set { innerControl.Content = value; }
}
소비자가이 속성에 바인딩 할을, 나는 그것을 위해하는 DependencyProperty를 정의해야
public static DependencyProperty ContentProperty = DependencyProperty.Register("Content", typeof (object), typeof (MyCustomButton));
을하지만 지금은 필요
public object Content
{
get { return GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
그래서 난 더 이상 내부 컨트롤의 값을 포장하고 있지 않다 : 내 속성 정의는 GetValue/SetValue 매크로를 사용합니다.
PropertyMetadata를 정의하여 DependencyProperty의 PropertyChanged 이벤트를 처리 할 수 있습니다. 그런 다음 값을 동기화 상태로 유지하고 변경시 무한 루프백을 방지하기 위해 일련의 배관 코드가 필요합니다.
업데이트 : 내 UserControl에는 여러 가지 다른 문제가 있으므로 Button에서 파생 될 수 없습니다.
더 좋은 방법이 있나요?
사용자 정의 컨트롤에는 다른 문제가 있습니다. 업데이트 된 질문. – Jeff
구체적으로 사용자 컨트롤의 "Content"속성을 사용 하시겠습니까?그렇지 않은 경우에는 항상 다른 종속성 속성을 노출하고 사용자 정의 컨트롤에있는 값을 해당 값에 바인딩 할 수 있습니다. –
나는 그것이 무엇인지에 상관하지 않는다. 그러나 나는 재산의 가치가 내부 통제의 어떤 것에 구체적으로 묶여지기를 바랍니다. – Jeff