C# 数据上下文之外的绑定

C# 数据上下文之外的绑定,c#,wpf,mvvm,binding,C#,Wpf,Mvvm,Binding,我有一个DataTemplate用于模板化ItemsControl的项目,这些项目是时间表的详细信息。 我有两个文本框,表示时间表详细信息的某些值,但它们的IsEnabled属性取决于时间表本身,而不是详细信息 <ItemsControl ItemsSource="{Binding Path=TimeSheet.TimeSheetDetails}" ItemTemplate="{StaticResource TimeSheetDetail}" /> <DataT

我有一个DataTemplate用于模板化ItemsControl的项目,这些项目是时间表的详细信息。 我有两个文本框,表示时间表详细信息的某些值,但它们的IsEnabled属性取决于时间表本身,而不是详细信息

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

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

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


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

您可以绑定到父级的
DataContext

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

我也遇到了同样的问题:[Ty alot,非常有用,但您犯了一个小错误,它更像是IsEnabled=“{Binding DataContext.IsEnabled,RelativeSource={RelativeSource FindAncestor,AncestorType=ItemsControl}”,因为时间表alredy是数据上下文。