Я работаю над приложением WPF и борюсь с триггером данных. Я хотел бы связать значение триггерного условия к некоторому объекту, который я имею:
<DataTrigger Binding="{Binding Foo}"
Value="{Binding ElementName=AnotherElement, Path=Bar}">..
Однако мне не разрешают, поскольку это, кажется, не возможно использовать привязку для свойства Value. Это? Я могу достигнуть этого так или иначе? Я получаю следующую ошибку:
'Привязка' не может быть установлена на свойстве 'Value' типа 'DataTrigger'. 'Привязка' может только быть установлена на DependencyProperty DependencyObject.
Нет, это невозможно. Как говорится в сообщении об ошибке, целями привязок WPF могут быть только свойства зависимости, а DataTrigger.Value не является свойством зависимости. Таким образом, вам нужно будет присвоить фактическое значение.
Обходной путь заключается в использовании привязки MultiBinding, дочерние привязки которой являются двумя привязками, которые вы хотите сравнить, с IMultiValueConverter, который возвращает true, если два входа равны, и false, если они не равны. Затем DataTrigger может использовать эту привязку MultiBinding и значение True.