WPF Применение триггера при сбое привязки - PullRequest
2 голосов
/ 08 апреля 2010

Этот вопрос является продолжением этого ...

Я привязываюсь к разнородной коллекции объектов, не все объекты имеют одинаковый набор свойств. Я делаю это в сетке данных. Я хотел бы выделить ячейку серым, если привязка не удалась. Есть ли способ применить триггер в случае сбоя привязки?

РЕДАКТИРОВАТЬ: ответ ниже был подходит для моих целей, но я ответил на этот вопрос , потому что я хотел бы знать, как это сделать (без взлома - я люблю взломать не поймите меня неправильно)

1 Ответ

4 голосов
/ 08 апреля 2010

Насколько я знаю, вы не можете сделать это напрямую. Однако, если вы можете идентифицировать значение, которое никогда не будет возвращено из успешных привязок, вы можете создать DataTrigger, привязка которого имеет это значение как его FallbackValue, и инициировать это же значение:

<!-- Hibble returns only positive values -->
<DataTrigger Binding="{Binding Hibble, FallbackValue=-1}" Value="-1">
  <Setter Property="Background" Value="Red" />
</DataTrigger>

Теоретически возможно опустить FallbackValue и запустить на {x:Static DependencyProperty.UnsetValue}, что будет намного чище, но на практике это не работает.

...