簡體   English   中英

WPF多枚枚舉標志轉換器參數?

[英]WPF Multiple Enum Flags to Converter Parameter?

如果枚舉值為(A | B | C),我需要一個可見的控件。

我知道如何使用轉換器將控件的可見性綁定到SINGLE枚舉(A)。

在這種情況下,我該如何做同樣的事情呢? 參數會怎么樣?

這是我使用的轉換器:

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} {x:Static E:Enum.A | E:Enum.B | E:Enum.C} {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>

作為概括這里的語法應為

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

因為逗號分隔XML,參數總是一個枚舉值。 但是沒有智能感知

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM