WPF.Измените цвет фона TextBlock, если текст в TextBlock равен тексту в ComboBox - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть Combobox с DeviceName.И у меня есть TextBlock с текстом в DataGrid из БД

<DataGrid>
...
<DataGridTemplateColumn Header="Device" Width="230">
...
    <Border BorderBrush="#FF757576" BorderThickness="0, 0, 0, 1">
        <StackPanel x:Name="StackPanelDevice" Orientation="Horizontal" >                                                
            <TextBlock  Text="{Binding Path=DeviceName}" HorizontalAlignment="Left" Width="200"/>
            <TextBlock  Text="{Binding Path=Count}" HorizontalAlignment="Right" Width="30" />
        </StackPanel>
   </Border>
...
</DataGridTemplateColumn>
</DataGrid>  

Как изменить цвет фона TextBlock, если текст в TextBlock равен тексту в ComboBox. Когда я выбираю текст в ComboBox, я фильтрую коллекцию и добавляю ее в Datagrid.Я хочу изменить цвет TextBlock, если текст в TextBlock = текст в ComboBox enter image description here

1 Ответ

0 голосов
/ 25 февраля 2019

Я сделал это так:

<Border BorderBrush="#FF757576" BorderThickness="0, 0, 0, 1">
    <StackPanel x:Name="StackPanelDevice" Orientation="Horizontal" >
        <TextBlock  Text="{Binding Path=DeviceName}" HorizontalAlignment="Left" Width="200" >
            <TextBlock.Style>
                <Style>
                    <Style.Triggers>                                                               
                        <DataTrigger Value="True">
                            <DataTrigger.Binding>
                                <MultiBinding Converter="{StaticResource multiValueEqualityConverter}">
                                    <Binding  ElementName="ComboBoxModels" Path="SelectedValue"/>
                                    <Binding  Path="DeviceName"/>
                                </MultiBinding>
                            </DataTrigger.Binding>
                       <Setter Property="TextBlock.Background" Value="Red"/>
                   </DataTrigger>
               </Style.Triggers>
           </Style>
       </TextBlock.Style>      
    </TextBlock>
    <TextBlock  Text="{Binding Path=Count}" HorizontalAlignment="Right" Width="30" />
  </StackPanel>
 </Border>  

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...