WPF DataGrid 突出显示与所选单元格匹配的列中的所有单元格

我用一个自定义类填充了一个ObservableCollection<>(也尝试了一个List<>)。我已将集合绑定到 DataGrid 并定义了列。现在我想选择一个单元格并突出显示其中具有相同字符串的其他单元格(在同一列中,尽管其他列中的数据永远不会匹配)。


<Window.Resources>

    <local:CellHighlighterConverter x:Key="cellHighlighterConverter" />

    <CollectionViewSource x:Key="ScanCollectionViewSource" CollectionViewType="ListCollectionView" />

    <Style x:Key="CenterCell" TargetType="TextBlock">

        <Setter Property="TextBlock.TextAlignment" Value="Center" />

    </Style>

    <Style x:Key="CellPad" TargetType="TextBlock">

        <Setter Property="Margin" Value="15,0,15,0" />

    </Style>

    <Style x:Key="CellHighlighterStyle" TargetType="TextBlock" >

        <Setter Property="Background" Value="{Binding IsMatching, NotifyOnSourceUpdated=True, Converter={StaticResource cellHighlighterConverter}}" />

        <Setter Property="TextBlock.TextAlignment" Value="Center" />

    </Style>

</Window.Resources>

<Grid HorizontalAlignment="Center" >

    <DataGrid x:Name="scans" DataContext="{StaticResource ScanCollectionViewSource}" ItemsSource="{Binding}" AutoGenerateColumns="False" FontFamily="Lucida Console" Margin="10" MouseUp="scans_MouseUp" >

        <DataGrid.Columns>

            <DataGridTextColumn Header="Device Name" Binding="{Binding Hostname}" Width="125" />

            <DataGridTextColumn Header="Scan Date" Binding="{Binding ScanDate}" Width="75" ElementStyle="{StaticResource CenterCell}" />

            <DataGridTextColumn Header="GUID" Binding="{Binding GUID}" Width="300" ElementStyle="{StaticResource CenterCell}" />

            <DataGridTextColumn Header="MAC" Binding="{Binding MAC}" Width="105" ElementStyle="{StaticResource CellHighlighterStyle}" />

        </DataGrid.Columns>

    </DataGrid>

</Grid>

Qyouu
浏览 249回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP