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中进行比较,如果相同,则触发单元格背景色变色。

  • 相关阅读:
    微博(MicroBlog)
    面试题网站目录
    html 打印代码,支持翻页
    C#日期格式化
    职位英语简称注解
    专业术语:闭包、网站优化 Gzip 服务器端文件压缩
    1,由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
    JSON-JSON 百科
    api.js
    Android消息处理机制
  • 原文地址:https://www.cnblogs.com/czly/p/9958241.html
Copyright © 2011-2022 走看看