bool以外の結果タイプが必要な場合は、最近ConverterParameterを使用してコンバータの結果値を無効にするオプションを使用し始めました。次に例を示します。
[ValueConversion(typeof(bool), typeof(System.Windows.Visibility))]
public class BooleanVisibilityConverter : IValueConverter
{
System.Windows.Visibility _visibilityWhenFalse = System.Windows.Visibility.Collapsed;
/// <summary>
/// Gets or sets the <see cref="System.Windows.Visibility"/> value to use when the value is false. Defaults to collapsed.
/// </summary>
public System.Windows.Visibility VisibilityWhenFalse
{
get { return _visibilityWhenFalse; }
set { _visibilityWhenFalse = value; }
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool negateValue;
Boolean.TryParse(parameter as string, out negateValue);
bool val = negateValue^(bool)value; //Negate the value using XOR
return val ? System.Windows.Visibility.Visible : _visibilityWhenFalse;
}
...
このコンバータは、boolをSystem.Windows.Visibilityに変換します。このパラメータを使用すると、逆の動作が必要な場合に変換する前にboolを否定できます。あなたは既に値コンバータを使用する場合は、その値によって返された値を否定するために、技術を連鎖/配管の一部のタイプに頼る必要があり、あなたはその後、結合に残念ながら
Visibility="{Binding Path=MyBooleanProperty, Converter={StaticResource boolVisibilityConverter}, ConverterParameter=true}"
:あなたはこのような要素でそれを使用することができますコンバータ。 – jpierson