2013-03-28 4 views
0

모두DataContext에서 StaticResource를 만드시겠습니까?

코드 숨김없이 DataContext의 개체에서 StaticResource를 만들 수 있습니까? 예를 들어 UserControl을의 DependencyProperty를 가져 가라 :

public static DependencyProperty ViewModelProperty = DependencyProperty.Register("ViewModel", typeof(IVMHeaderGeneric), typeof(UIHeader), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender)); 
public IVMHeaderGeneric ViewModel 
{ 
    get 
    { 
     return (IVMHeaderGeneric)this.GetValue(ViewModelProperty); 
    } 
    set 
    { 
     this.SetValue(ViewModelProperty, value); 
    } 
} 

IVMHeaderGeneric이 사용자 컨트롤의 소비자가 클래스로 인스턴스화하는 인터페이스입니다.

필자는 DataContext를 상속하지 않는 UIElements에서 데이터 바인딩을 수행 할 수 있도록 UserControl의 Resources에이 코드를 추가해야합니다 (코드 숨김없이). DataGridColumn이 마음에 들었습니다. .

미리 감사드립니다.

답변

0

나는 당신이 말한대로 구현 UserControl을 범위를 벗어나, 때문에, 인스턴스에게 XAML 자원의 인터페이스를 만들 수 있다고 생각합니다. 대신 정적 리소스을 만드는

, 당신은 UserControl을의 DataContext 속성을 참조 바인딩 를 사용할 수 있습니다. 예를 들어 루트 요소 이름을 Root으로 지정하면 다음과 같이 작성할 수 있습니다.

<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" />