У меня была проблема с инверсией, но решение было удачным.
Мотивация заключалась в том, что разработчик XAML показывал пустой элемент управления, например когда не было текста данных / нет MyValues
(источник).
Исходный код: скрыть контроль, когда MyValues
пусто.
Улучшенный код: показывает элемент управления, когда MyValues
НЕ является нулевым или пустым.
Конечно, проблема в том, как выразить «1 или более элементов», что противоположно 0 элементам.
<ListBox ItemsSource={Binding MyValues}">
<ListBox.Style x:Uid="F404D7B2-B7D3-11E7-A5A7-97680265A416">
<Style TargetType="{x:Type ListBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding MyValues.Count}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
Я решил это, добавив:
<DataTrigger Binding="{Binding MyValues.Count, FallbackValue=0, TargetNullValue=0}">
Ergo устанавливает значение по умолчанию для привязки. Конечно, это не работает для всех видов обратных задач, но помогло мне с чистым кодом.