超出DataContext的绑定

本文关键字:绑定 DataContext 超出 | 更新日期: 2023-09-27 18:04:15

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

<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的公共属性?

超出DataContext的绑定

你可以绑定你父母的DataContext:

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