Skip to content

BoolExpressionConverter ru

Leksiqq edited this page Jun 6, 2024 · 7 revisions

Класс BoolExpressionConverter

неполная реализация интерфейса 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)