2014-03-05 3 views
0

그룹 상자에 여러 텍스트 상자가 있습니다. 이 Textbox는 모두 Groupbox의 Datacontext에서 파생되지만 그룹의 Textbox 중 하나에는 다른 Datacontext가 필요합니다. 위의 코드에서 txtbA 부모 데이터 컨트롤의 datacontext를 로컬 datacontext로 대체합니다.

<GroupBox Header="My Group" Height="150" Width="1132" DataContext="{Binding ContextA}" > 
           <Grid> 
            <Label x:Name="lblA" Content="Policy Number:" Margin="6,12,970,92" /> 
            <TextBox x:Name="txtbA" Margin="155,12,0,0" HorizontalAlignment="Left" Height="24" TextWrapping="Wrap" Text="{Binding ValueA}" VerticalAlignment="Top" Width="278" Grid.ColumnSpan="2"/> 
            <Label x:Name="lblB" Content="Policy Type:" Margin="612,10,334,88" Height="30"/> 
            <TextBox x:Name="txtbB" Margin="801,12,0,0" HorizontalAlignment="Left" Height="24" TextWrapping="Wrap" DataContext="{Binding ContextB}" Text="{Binding ValueB}" VerticalAlignment="Top" Width="278"/> 
           </Grid> 
          </GroupBox> 

는 그룹 상자의 것과 동일한 Datacontext 이용한다. 내가 txtbB 별도의 DatacontextContextB

을 갖고 싶어하지만 ContextBtxtbB에 할당 받고 있지 않습니다. 문제를 해결하는 방법?

참고 : ContextAContextB = Entity Framework 모델 목록.

답변

1

WPF 바인딩 엔진이 현재 DataContext에서 속성을 찾습니다. 그래서, 귀하의 경우 바인딩 엔진은 의 속성 ContextB을 찾고 있습니다. textBox가 부모 GroupBox로부터 DataContext를 상속하기 때문입니다.

<GroupBox Header="My Group" Height="150" Width="1132" 
      DataContext="{Binding}"> <-- HERE Or can remove setting DC altogether. 
    <Grid> 
    <Label x:Name="lblA" Content="Policy Number:" Margin="6,12,970,92" /> 
    <TextBox x:Name="txtbA" Margin="155,12,0,0" HorizontalAlignment="Left" 
       Height="24" TextWrapping="Wrap" 
       Text="{Binding ContextA.ValueA}" <-- HERE 
       VerticalAlignment="Top" 
       Width="278" Grid.ColumnSpan="2"/> 
    <Label x:Name="lblB" Content="Policy Type:" Margin="612,10,334,88" 
      Height="30"/> 
    <TextBox x:Name="txtbB" Margin="801,12,0,0" HorizontalAlignment="Left" 
       Height="24" 
       TextWrapping="Wrap" DataContext="{Binding ContextB}" 
       Text="{Binding ValueB}" VerticalAlignment="Top" Width="278"/> 
    </Grid> 
</GroupBox> 
: 당신이 할 수있는 일

이 같은 ContextA에 대한 더 자세한 정의를 사용하다