DataSwitch ru - Leksiqq/WpfMarkupExtension GitHub Wiki

Класс DataSwitch

Применяется в разметке XAML аналогично <DataTrigger>. Имеет атрибут Binding с тем же смыслом. Содержимое состоит из элементов <DataTrigger> без атрибута Binding. Действует как будто все <DataTrigger> имеют одинаковый Binding, но при этом значение привязки вычисляется только один раз.

Пример

в демо на вкладке «Demo3» на консоль выводятся обращения к вычислению значения привязки в случае с использованием <DataSwitch> и без него.

<TextBlock DockPanel.Dock="Top">
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <l:DataSwitch Binding="{Binding Text, ElementName=T1, 
                          Converter={l:ParameterizedResource DataConverter},
                          ConverterParameter=T1Text|DataSwitch, Mode=OneWay}">
                    <DataTrigger Value="1">
                        <Setter Property="Text" Value="Один"/>
                    </DataTrigger>
                    <DataTrigger Value="2">
                        <Setter Property="Text" Value="Два"/>
                    </DataTrigger>
                    <DataTrigger Value="3">
                        <Setter Property="Text" Value="Три"/>
                    </DataTrigger>
                    <DataTrigger Value="4">
                        <Setter Property="Text" Value="Четыре"/>
                    </DataTrigger>
                    <DataTrigger Value="">
                        <Setter Property="Text" Value=""/>
                    </DataTrigger>
                </l:DataSwitch>
            </Style.Triggers>
            <Setter Property="Text" Value="Не могу понять"/>
        </Style>
    </TextBlock.Style>
</TextBlock>

Раньше: (BindingProxy) Начало:(Обзор) Дальше:(Демо)

⚠️ **GitHub.com Fallback** ⚠️