2011-07-26 7 views
2

CarData와 간단한 bool AllowSubmit이라는 복잡한 속성이 있다고 가정 해 보겠습니다. XAML은 :wpf/silverlight binding help

<Grid ..... DataContext={Binding CarData}> 
...TextBoxes binded, working 
.... 

last line in the grid: 
<Button IsEnabled={Binding AllowSubmit}> 
</Grid> 

문제는 AllowSubmit가 바인더 제본되지 않는 것입니다. Grid의 DataContext가 CarData 속성에 바인드되어 있기 때문에 그리드 외부에 버튼을 놓으면 작동하기 때문입니다. 또한 내가 "AllowSubmit 수 있도록 단추 DataContext 설정하여 DataContext"재정의하는 경우 생각하지만 그것은 작동하지 않습니다. 나는 그것이 초보자 용 질문이라는 것을 알았지 만 갈 수있는 적절한 방법은 무엇입니까? 나는 Button을 그리드의 속성과 다른 속성에 바인딩하는 것이 가능하다고 확신한다. 도와 줘서 고마워.

답변

2

DataContext 속성은 컨트롤 안에 상속됩니다. 그리드에서 변경하면 내부의 모든 컨트롤에서도 효과적으로 변경됩니다. 당신이 일을해야처럼

소리가 난다 : 여기

<Grid> 
    <TextBox Text="{Binding CarData.Make}" />> 
    <Button IsEnabled="{Binding AllowSubmit}" />> 
<Grid> 

는 CarData에 텍스트 상자 훈련 그래서 버튼의 DataContext에 영향을주지 않습니다.

+0

도움 주셔서 감사합니다. – rescueme

+0

DataContext 속성을 명시 적으로 설정하는 것은 코드가 수행 할 작업을 완벽하게 알지 못하는 한 나쁜 습관입니다. CodeNaked 솔루션에 동의합니다. –