SORU
10 ŞUBAT 2009, Salı


Nasıl BooleanToVisibilityConverter ters muyum?

WPF bir BooleanToVisibilityConverter bir boolean bir kontrol Görünürlük özelliğini bağlamak için kullanıyorum. Bu gayet iyi çalışıyor, ama denetimlerinin eğer boolean true ise gizlemek ister, ve eğer yanlış olsaydı gösterirdim.

Bu mümkün mü?

Teşekkürler Andy

CEVAP
3 Mart 2011, PERŞEMBE


Eviren yerine Boolean bir değere dönüştürebilirsiniz IValueConverter genel bir uygulama kullanarak aynı amacı elde edebilirsinizyapılandırılabilirdoğru ve yanlış, hedef değerler. Aşağıda böyle bir uygulama:

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);
    }
}

Sonraki, T Visibility bulunduğu alt:

public sealed class BooleanToVisibilityConverter : BooleanConverter<Visibility>
{
    public BooleanToVisibilityConverter() : 
        base(Visibility.Visible, Visibility.Collapsed) {}
}

Son olarak, bu BooleanToVisibilityConverter yukarıdaki XAML kullanmak ve, örneğin, yanlış doğru Collapsed Visible kullanmak için yapılandırabilirsiniz.

<Application.Resources>
    <app:BooleanToVisibilityConverter 
        x:Key="BooleanToVisibilityConverter" 
        True="Collapsed" 
        False="Visible" />
</Application.Resources>

Bu " ters IsVisible karşı bir Boolean özelliği IsHidden adlı bağlamak istediğinizde kullanışlıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • psidot

    psidot

    2 Kasım 2006
  • Subscribe!!

    Subscribe!!

    3 EKİM 2009