zoukankan      html  css  js  c++  java
  • WPF GridControl单元格值与过滤值相同时,改变单元格背景色

    DataTrigger的Value不可绑定,所以我们需要用MultiBinding来实现这个功能。

      <dxg:TableView.CellStyle>
                                            <Style TargetType="{x:Type dxg:LightweightCellEditor}" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=LightweightCellStyle}}">
                                                <Style.Triggers>
                                                    <DataTrigger Value="True">
                                                        <DataTrigger.Binding>
                                                            <MultiBinding Converter="{StaticResource multiValueEqualityConverter}">
                                                                <Binding  Path="Value" Mode="OneWay" />
                                                                <Binding RelativeSource="{RelativeSource AncestorType={x:Type local:WI}}" Path="DataContext.CurrentFilterValue" Mode="OneWay"  />
                                                                <Binding RelativeSource="{RelativeSource AncestorType={x:Type local:WI}}" Path="DataContext.FIsFilter" Mode="OneWay"  />
                                                            </MultiBinding>
                                                        </DataTrigger.Binding>
                                                        <Setter Property="Background" Value="Orange"/>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </dxg:TableView.CellStyle>
        public class MuliteConvertEqual : IMultiValueConverter
        {
            public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
            {
                if (values != null)
                {
                    if (values[0] != null && values[1] != null && values[2] !=null)
                    {
                        if (values[0].ToString() == values[1].ToString()&& System.Convert.ToBoolean(values[2])==true)
                        {
                            return true;
                        }
                    }
                        
                }
    
                return false;
            }
    
            public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
            {
                return null;
            }
        }

    将单元格的值,viewmodel中的过滤值进行MultiBinding,在converter中进行比较,如果相同,则触发单元格背景色变色。

  • 相关阅读:
    CentOS安装按进程实时统计流量情况工具NetHogs笔记
    修改centos地址连接为自动连接
    优秀博客主推荐链接
    idea制动补全返回值变量快捷键
    mongodb系列之--分片的原理与配置
    Mongodb系列之--mongodb的启动与关闭
    mongodb系列之---副本集配置与说明
    mongodb系列之--mongodb 主从配置与说明
    go 语言学习
    php模拟post与get请求
  • 原文地址:https://www.cnblogs.com/czly/p/9958241.html
Copyright © 2011-2022 走看看