2016-08-24 2 views
0

템플릿 바인딩에서 약간 녹슬어져있는 것처럼 보입니다.이 기능을 사용할 수 없습니다. 무엇이 잘못되었는지 보시겠습니까?올바른 템플릿 바인딩을 수행하는 방법은 무엇입니까?

<Style TargetType="{x:Type Framework:TextPropertyRow}"> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type Framework:TextPropertyRow}"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="20" /> 
      <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <ContentPresenter ContentSource="Header" /> 
      <TextBox Text="{TemplateBinding Content}" Grid.Column="2" /> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

I는 다음과 같이 사용하고 있습니다 :

<Framework:TextPropertyRow Header="Value" 
    Content="{Binding PublicStringPropertyOnDataContext}" /> 

이 같은 스타일과 컨트롤 템플릿

public class TextPropertyRow : HeaderedContentControl 
{ 
} 

:

는이 같은 사용자 지정 컨트롤을 가지고 그러나 텍스트 상자에 입력 된 값은 viewmodel 데이터 인터페이스에 주입되지 않습니다. 이것이 올바른 방법이 아닌가? 값이 런타임에 두 가지를가는 경우에

+0

TemplateBinding와 일반 바인딩을 수행합니다. –

답변

0

, 당신은 양방향이 될 수 없습니다 RelativeSource TemplatedParent

<TextBox 
    Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" 
    Grid.Column="2" 
    /> 
+0

아, 잊어 버렸어. XAML을 좋아하지만 WPF는 성가신 것입니다.) –

+0

@AndreasZita 네, 매주 또는 둘씩 저에게 알려줍니다. –

관련 문제