Projemizde yaptığımız şey, düzenli bir BooleanToVisibilityConverter yapmasıdır, çünkü dönüştürücü bir parametre alır (bir şey, bir dizi, bir int, bool, her neyse). Parametre ayarlanırsa, sonucu tersine çevirir, eğer değilse, normal sonucu çıkarır.
public class CombiningConverter : IValueConverter
{
public IValueConverter Converter1 { get; set; }
public IValueConverter Converter2 { get; set; }
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
object convertedValue = Converter1.Convert(value, targetType, parameter, culture);
return Converter2.Convert(convertedValue, targetType, parameter, culture);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
ve böyle diyoruz:
public class BooleanToVisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool? isVisible = value as bool?;
if (parameter != null && isVisible.HasValue)
isVisible = !isVisible;
if (isVisible.HasValue && isVisible.Value == true)
return Visibility.Visible;
else
return Visibility.Collapsed;
}
public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new System.NotImplementedException();
}
#endregion
}
evet, bağlandığınız çözüm muhtemelen en iyisi ... –
Ayrıca bakınız [XAML'de çoklu dönüştürücüler zincirleme] (http://stackoverflow.com/q/2607490/2032064) – Mifeet
Kasaba en iyisi dedi [burada] (http://stackoverflow.com/a/8326207/526704), onun çözüm jberger cevabı benzer, istediğiniz kadar birçok zincir sağlar, ancak bu bir daha zarif ve kısa uygulanmasında ise – DLeh