超出DataContext的绑定

时间:2011-08-01 15:33:55

标签: c# wpf mvvm binding

我有一个DataTemplate用于模板我的ItemsControl的项目,这些项目是TimeSheet的详细信息。 我有几个TextBox表示我的TimeSheet的详细信息的某些值,但它们的IsEnabled属性取决于TimeSheet本身,而不是细节。

<ItemsControl 
   ItemsSource="{Binding Path=TimeSheet.TimeSheetDetails}"
   ItemTemplate="{StaticResource TimeSheetDetail}"
/>

<DataTemplate x:Key="TimeSheetDetail">
   <TextBox
      Text="{Binding Houre}"
      IsEnabled="Binding ??????">
</DataTemplate>

由于IsEnabled属性无法在TimeSheetDetails中找到,但可以在我的ViewModel中找到,我想直接绑定到我的ViewModel的属性,但是当我尝试从我的DataTemplate尝试绑定到我的ViewModel时,它似乎只能查找我的TimeSheetDetail。

如何直接访问我的ViewModel的公共属性?

1 个答案:

答案 0 :(得分:2)

您可以绑定到您父母的DataContext

{Binding DataContext.IsEnabled, 
         RelativeSource={RelativeSource FindAncestor, AncestorType=ItemsControl}}