WPF多个枚举标志到转换器参数? [英] WPF Multiple Enum Flags to Converter Parameter?

查看:82
本文介绍了WPF多个枚举标志到转换器参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个控件,如果枚举值为(A | B | C),则需要显示该控件.

I have a control which I need visible if an enum value is (A | B | C).

我知道如何使用转换器将控件的可见性绑定到单个枚举(A).

I know how to bind the visibility of a control to a SINGLE enum (A) using a converter.

在这种情况下,我该如何做同样的事情?参数中会显示什么?

How do I go about doing the same for this case? What would go in the parameter?

这是我使用的转换器:

public class EnumToVisibilityConverter : IValueConverter {
    public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) {
        if ( value == null || parameter == null || !( value is Enum ) )
            return Visibility.Hidden;
        string State = value.ToString( );
        string parameterString = parameter.ToString( );

        foreach ( string state in parameterString.Split( ',' ) ) {
            if ( State.Equals( state ) )
                return Visibility.Visible;
        }
        return Visibility.Hidden;
    }

    public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) {
        throw new NotImplementedException( );
    }
}

这是XAML绑定:

<UserControl.Visibility>
    <Binding
        Path="GameMode" Source="{x:Static S:Settings.Default}" Converter="{StaticResource ETVC}"
        ConverterParameter="{x:Static E:GameMode.AudiencePoll}" Mode="OneWay"/>
</UserControl.Visibility>

如何将(A | B | C)传递给转换器参数?就像说 {x:Static E:Enum.A |E:Enum.B |E:Enum.C} ?

How would do I pass (A|B|C) to the Converter Parameter? Is it as simple as just saying {x:Static E:Enum.A | E:Enum.B | E:Enum.C}?

推荐答案

我能够找到答案为大家节省旅行

<Binding Path="PathGoesHere" Source="{x:Static SourceGoesHere}" Converter="{StaticResource ConverterKeyGoesHere}">
    <Binding.ConverterParameter>
        <EnumTypeGoesHere>A,B,C</EnumTypeGoesHere>
    </Binding.ConverterParameter>
</Binding>

这篇关于WPF多个枚举标志到转换器参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆