2010-01-05 4 views

답변

2

바인딩 원본을 지정하지 않았습니다. 따라서 tab 요소의 로컬 DataContext를 사용합니다. tab 요소에는 아직 경로 (Content.DataContext)가 의미있는 DataContext (설정하려는 항목)가 없으므로 작동하지 않습니다.

대신 같은 것을 사용합니다. (당신의 정확한 요구 사항에 따라이 대신 Binding.RelativeSource의 Binding.Source을 사용하여 조사 할 수 있습니다)

Binding binding = new Binding("Content.DataContext") 
{ 
    RelativeSource = RelativeSource.Self 
}; 
BindingOperations.SetBinding(tab, DataContextProperty, binding); 

RelativeSource 설정이 바인딩을 지정합니다 은 로컬 DataContext가 아닌 바인딩 대상과 같은 요소입니다. 따라서 컨트롤의 DataContext는 필요에 따라 해당 컨트롤의 ContentContent의 DataContext에 바인딩됩니다.

0

이 당신이 XAML에서 바인딩 뭘 하려는지 달성하기 위해 더 나은 방법은 아마이지만, 어쨌든 뒤에 코드를 사용하는 경우, 당신은 대신 다음과 같은 시도 할 수 있습니다 : 어떤없이

FrameworkElement fe = tab.Content as FrameworkElement 
if (fe != null) 
    tab.DataContext = fe.DataContext; 

제본.

+0

컴파일되지 않습니다. 내용이 형식 개체로 선언되어 있고 개체에 DataContext 속성이 없습니다. – itowlson

+0

고정 ........... –

관련 문제