2014-02-11 6 views
1

WPF에서 UserControl을 만들고 일부 종속성 속성을 생성했습니다. 하지만 속성 중 하나에서 XAML에서 바인딩을 설정할 수 없습니다.WPF 사용자 지정 UserControl - 종속성 속성 바인딩

internal Visibility ProgressbarVisibility 
{ 
    get { return (Visibility)GetValue(ProgressbarVisibilityProperty); } 
    set { SetValue(ProgressbarVisibilityProperty, value); } 
} 

internal static readonly DependencyProperty ProgressbarVisibilityProperty = 
      DependencyProperty.Register("ProgressbarVisibility", typeof(Visibility), typeof(ImportBox), new PropertyMetadata(Visibility.Hidden)); 

그래서 나는 다음과 같은 오류가 발생합니다 : 내가 수정 값, 그 문제없이 "하드 코딩"속성을 설정

A 'Binding' cannot be set on the 'ProgressbarVisibility' property of type 'ImportBox'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.

.

다른 Dependeny 속성은이 유형의 오류를 발생시키지 않으며 원하는 모든 것을 바인딩 할 수 있습니다.

internal ImageSource ImageSource 
     { 
     get { return (ImageSource)GetValue(ImageSourceProperty); } 
     set { SetValue(ImageSourceProperty, value); } 
     } 

internal static readonly DependencyProperty ImageSourceProperty = 
      DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(ImportBox)); 

internal string HeaderText 
     { 
     get { return (string)GetValue(HeaderTextProperty); } 
     set { SetValue(HeaderTextProperty, value); } 
     } 

internal static readonly DependencyProperty HeaderTextProperty = 
      DependencyProperty.Register("HeaderText", typeof(string), typeof(ImportBox)); 

internal UIElement PresenterContent 
     { 
     get { return (UIElement)GetValue(PresenterContentProperty); } 
     set { SetValue(PresenterContentProperty, value); } 
     } 

internal static readonly DependencyProperty PresenterContentProperty = 
      DependencyProperty.Register("PresenterContent", typeof(UIElement), typeof(ImportBox)); 

답변

2

은 ... 공중으로 DependencyProperty이 문제가 해결됩니다 확인

public Visibility ProgressbarVisibility 
{ 
    get { return (Visibility)GetValue(ProgressbarVisibilityProperty); } 
    set { SetValue(ProgressbarVisibilityProperty, value); } 
} 

public static readonly DependencyProperty ProgressbarVisibilityProperty = 
     DependencyProperty.Register("ProgressbarVisibility", typeof(Visibility), typeof(ImportBox), new PropertyMetadata(Visibility.Hidden)); 
+1

좋아 ... 감사합니다! 두 번째 문제는 내부의 Datacontext에서 Properties를 설정한다는 것입니다. 이제 그 작품. – Hiead

관련 문제