wpf/silverlight绑定帮助

wpf/silverlight绑定帮助,wpf,silverlight,xaml,binding,datacontext,Wpf,Silverlight,Xaml,Binding,Datacontext,假设我有一个名为CarData的复杂属性和一个简单的bool AllowSubmit。 Xaml: …文本框已绑定,正在工作 .... 网格中的最后一行: 问题是AllowSubmit没有绑定。我认为这是因为网格的DataContext绑定到CarData属性,因为如果我将按钮放在网格之外,它就会工作。我还认为,如果我通过将按钮DataContext设置为AllowSubmit来“覆盖”DataContext,会有所帮助,但不会起作用。我知道这是一个很新的问题,但正确的方法是什么?我很确定可

假设我有一个名为CarData的复杂属性和一个简单的bool AllowSubmit。 Xaml:


…文本框已绑定,正在工作
....
网格中的最后一行:

问题是AllowSubmit没有绑定。我认为这是因为网格的DataContext绑定到CarData属性,因为如果我将按钮放在网格之外,它就会工作。我还认为,如果我通过将按钮DataContext设置为AllowSubmit来“覆盖”DataContext,会有所帮助,但不会起作用。我知道这是一个很新的问题,但正确的方法是什么?我很确定可以将按钮绑定到网格属性以外的其他属性。感谢您的帮助。

DataContext属性由其内部的控件继承。所以,如果你在网格上更改它,那么它将有效地在内部的所有控件上更改它

听起来你应该这样做:

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

>
>

在这里,文本框钻入CarData,这样按钮的DataContext就不会受到影响。

明确设置DataContext属性是一种不好的做法,除非您完全知道代码将做什么。我同意Code裸体解决方案。非常感谢您的帮助。
<Grid>
    <TextBox Text="{Binding CarData.Make}" />>
    <Button IsEnabled="{Binding AllowSubmit}" />>
<Grid>