zoukankan      html  css  js  c++  java
  • wpf converter converterparameter 绑定多参数

    1. converterparameter不是依赖属性,所以不能用binding。

    2. 可以把converter 的接口 IValueConverter改为 IMultiValueConverter,实现多个  MultiBinding

    3. IMultiValueConverter代码,例如:

        public class MultiBoolToColorConverter : IMultiValueConverter
        {
            public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                var color = System.Windows.Media.Color.FromRgb(0x31, 0x89, 0xC6);// "#3189c6";
    
    
                if (values.All(v => (v is bool && (bool)v)) || values.All(v => (v is bool && (bool)v==false)))
                {
                    color = System.Windows.Media.Color.FromRgb(0x89, 0xBB, 0xE0);//"#89BBE0";
                }
    
                return new System.Windows.Media.SolidColorBrush(color);
            }
    
            public object[] ConvertBack( object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotSupportedException();
            }
        }

    4.xmal文件写法,例如:

      <UserControl.Resources>
            <cv:MultiBoolToColorConverter x:Key="mutiBoolConverter"/>
        </UserControl.Resources>
    <Style TargetType="FrameworkElement">
        <Setter Property="Visibility">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource AccessLevelToVisibilityConverter}">
                    <Binding Path="Tag" RelativeSource="{RelativeSource Mode=FindAncestor,
                                                         AncestorType=UserControl}"/>
                    <Binding Path="Tag" RelativeSource="{RelativeSource Mode=Self}"/>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style>

    OR

     <Button Content="Test">
                    <Button.Background>
                        <MultiBinding Converter="{StaticResource mutiBoolConverter}">
                            <Binding Path="IsEnableCredentialsAdded"/>
                            <Binding Path="IsOld"/>
                        </MultiBinding>
                    </Button.Background> 
                </Button>
  • 相关阅读:
    交换相邻字符(CharBuffer)
    ANSI和UNICODE
    关键路径
    拓扑排序 java
    MySql 中group by使用
    面试题2
    面试题
    K8S如何限制资源使用
    Kubernetes中配置Pod的liveness和readiness探针
    sed入门详解教程
  • 原文地址:https://www.cnblogs.com/kissfu/p/5580432.html
Copyright © 2011-2022 走看看