Связывание за пределами DataContext - PullRequest
0 голосов
/ 01 августа 2011

У меня есть DataTemplate для шаблонирования элементов моего ItemsControl, которые являются деталями TimeSheet. У меня есть пара TextBox, представляющих определенные значения деталей моего расписания, но их свойство 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, но когда я пытаюсь связать его с моей ViewModel из моей DataTemplate, кажется, что он выглядит мой TimeSheetDetail.

Как я могу получить доступ к публичной собственности моего ViewModel напрямую?

1 Ответ

2 голосов
/ 01 августа 2011

Вы можете связать с DataContext вашего родителя:

{Binding DataContext.IsEnabled, 
         RelativeSource={RelativeSource FindAncestor, AncestorType=ItemsControl}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...