BoolExpressionConverter ru - Leksiqq/WpfMarkupExtension GitHub Wiki
неполная реализация интерфейса IMultiValueConverter, в котором реализован метод object Convert(object[] values, Type targetType, object parameter, CultureInfo culture), которому передаётся массив bool значений values и строка, описывающая Булево выражение над ними, в качестве parameter. Возвращает результат вычисления выражения.
object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) - вычисляет выражение, переданное в строке parameter, в котором операндами являются элементы массива values. В строке выражения используются операции !, & и |. В качестве операндов используются литералы вида @n, где n - позиция соответствующего элемента массива values, начиная с нуля. Выражение должно быть правильной скобочной последовательностью.
<Style x:Key="ButtonVisibleIfCanEdit" TargetType="ButtonBase">
<Style.Triggers>
<l:DataSwitch>
<l:DataSwitch.Binding>
<MultiBinding Converter="{StaticResource BoolExpressionConverter}"
ConverterParameter="@0 | @1">
<Binding Path="Value" Converter="{StaticResource IsNullConverter}"/>
<Binding Path="IsReadonly"/>
</MultiBinding>
</l:DataSwitch.Binding>
<DataTrigger Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Value="False">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</l:DataSwitch>
</Style.Triggers>
</Style>
Раньше: (DataSwitch) Начало:(Обзор) Дальше:(ConverterProxy)