사용자 지정 클래스에 바인딩하는 데 문제가 있습니다. dependencyproperty는 내 viewmodel에서 올바른 값을 얻지 못하는 것 같습니다. 사용자 지정 클래스의 DependencyProperty에 바인딩
public class DataResource : DependencyObject
{
public static readonly DependencyProperty ContentProperty =
DependencyProperty.Register("Content",
typeof(object),
typeof(DataResource));
public object Content
{
get { return (object)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
}
그리고 내 UserControl을 자원이
, 나는이 :<UserControl.Resources>
<local:DataResource x:Key="dataResource" Content="{Binding Test}"></data:DataResource>
</UserControl.Resources>
"테스트"내 뷰 모델에서 내가 문제없이에 레이블을 결합 할 수있는 속성입니다 여기 내 사용자 정의 클래스입니다. 이 구현에서 내가 여기서 잘못된 것을하고 있습니까?
업데이트 : DependencyObject 대신 Freezable에서 상속하는 경우 작동합니다. 나는 왜, 잘하면 somone 이것을 설명 할 수 있는지 잘 모르겠습니다. Resources
에는 컨텍스트가 없습니다
? 내 Resource 내에서 CollectionViewSource를 사용할 수 있으며 바인딩은 UserControl에 이미 DataContext가 설정되어 있기 때문에 잘 작동합니다. – dbomb7
어쩌면 그 [상속 컨텍스트] (http://blogs.msdn.com/b/nickkramer/archive/2006/08/18/705116.aspx)를 통해 작동하지만, 나는 잘 모르겠다. 하지만 타입을'FrameworkElement'로 바꾸는 것은 확실한 방법이 아닙니다. 어떤 식 으로든 취할 수있는 올바른 단계는 아닙니다. 현재 DataContext에 바인딩 할 수 없기 때문에 'ElementName'이나'Source'와 같은 다른 소스를 사용하여 경로를 지정해야합니다. 해당 출처와 관련하여 –