Как связать со свойством ViewModel из GridView - PullRequest
1 голос
/ 27 августа 2009

Я использую шаблон проектирования MVVM, и DataContext моего вида установлен на ViewModel.

На мой взгляд, у меня есть ListView/GridView с ItemsSource, привязанным к DataTable. Один из GridViewColumns имеет CellTemplate, который представляет Button. Я хочу, чтобы свойство IsEnabled кнопки было привязано к свойству SelectButtonsEnabled моего ViewModel.

Использование IsEnabled="{Binding Path=SelectButtonsEnabled}" не работает, потому что у моего DataTable нет столбца с именем "SelectButtonsEnabled". Свойство, которое я пытаюсь связать, является глобальным для всей модели ViewModel, а не только для строки DataTable.

Я думаю, что мне нужен какой-то тег RelativeSource, но все мои попытки пока что провалились.

Спасибо.

1 Ответ

1 голос
/ 27 августа 2009

Ну, я не знаю, является ли это наиболее лаконичным способом сделать это, но это работает:

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