Как установить привязку данных датриггера на более высокий уровень - PullRequest
0 голосов
/ 09 февраля 2019

Следующий код xaml - это четыре ресурса, которые я использую.Я хочу объединить два ресурса стиля и два шаблона данных в ресурс стиля и шаблон данных соответственно.Было бы очень приятно, если бы все они могли быть объединены в один ресурс.

Спасибо за помощь!

        <Style x:Key="ServiceStatusImageStyle" TargetType="{x:Type Image}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ServiceStatus}" Value="true">
                    <Setter Property="Source" Value="/Resources/Images/StartedService.png"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding ServiceStatus}" Value="false">
                    <Setter Property="Source" Value="/Resources/Images/StopedService.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

        <Style x:Key="DrawModeImageStyle" TargetType="{x:Type Image}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding bScrollViewMode}" Value="true">
                    <Setter Property="Source" Value="/Resources/Images/scrollview24.png"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding bScrollViewMode}" Value="false">
                    <Setter Property="Source" Value="/Resources/Images/zoomview24.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

        <DataTemplate x:Key="ServiceStatusDataTemplate" DataType="{x:Type local:MainWindowViewModel}">
            <Grid Width="220" Height="60">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="35"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Width="30" Height="30" Margin="5,0,0,0" Style="{StaticResource ServiceStatusImageStyle}"/>
                <TextBlock Grid.Column="1" FontSize="25" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" 
                           Foreground="White" Text="{Binding ServiceStatusString}">
                </TextBlock>
            </Grid>
        </DataTemplate>

        <DataTemplate x:Key="DrawModeDataTemplate" DataType="{x:Type local:MainWindowViewModel}">
            <Grid Width="220" Height="60">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="35"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Width="30" Height="30" Margin="5,0,0,0" Style="{StaticResource DrawModeImageStyle}"/>
                <TextBlock Grid.Column="1" FontSize="25" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" 
                           Foreground="White" Text="{Binding ViewModeName}">
                </TextBlock>
            </Grid>
        </DataTemplate>
...