亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何反轉BooleanToVisibilityConverter?

如何反轉BooleanToVisibilityConverter?

素胚勾勒不出你 2019-12-18 16:27:31
我BooleanToVisibilityConverter在WPF中使用Visibility,將控件的屬性綁定到Boolean。這可以正常工作,但我希望其中一個控件可以隱藏boolean是否為true,并顯示是否為false。
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

通過使用IValueConverter將布爾值轉換為true和false的可配置目標值的通用實現,您可以實現相同的目標,而不是取反。以下是一種這樣的實現:


public class BooleanConverter<T> : IValueConverter

{

    public BooleanConverter(T trueValue, T falseValue)

    {

        True = trueValue;

        False = falseValue;

    }


    public T True { get; set; }

    public T False { get; set; }


    public virtual object Convert(object value, Type targetType, object parameter, CultureInfo culture)

    {

        return value is bool && ((bool) value) ? True : False;

    }


    public virtual object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

    {

        return value is T && EqualityComparer<T>.Default.Equals((T) value, True);

    }

}

接下來,在以下位置T將其子類化Visibility:


public sealed class BooleanToVisibilityConverter : BooleanConverter<Visibility>

{

    public BooleanToVisibilityConverter() : 

        base(Visibility.Visible, Visibility.Collapsed) {}

}

最后,這是您可以BooleanToVisibilityConverter在XAML中使用上述方法并將其配置為例如Collapsed用于true和Visiblefalse的方式:


<Application.Resources>

    <app:BooleanToVisibilityConverter 

        x:Key="BooleanToVisibilityConverter" 

        True="Collapsed" 

        False="Visible" />

</Application.Resources>

當您要綁定到名為IsHidden相反的布爾屬性時,此反轉非常有用IsVisible。


查看完整回答
反對 回復 2019-12-18
  • 3 回答
  • 0 關注
  • 830 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號