Acepto la respuesta de @Todd White.
Además, para ahorrar tiempo, puede implementar una clase de convertidor base que implemente ConvertBack
para que no tenga que implementarlo cada vez que guarde el código duplicado.
Técnicamente, usted no tiene que anular Convert
tampoco; Pero tiene que implementarse en ConverterBase
ya que implementa todos los métodos de la interfaz IValueConverter
. En la práctica, va a anular Convert
cada vez y ConvertBack
se puede ignorar la mayor parte del tiempo.
public class ConverterBase : IValueConverter
{
public virtual object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
public virtual object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
public class VisibilityConverter : ConverterBase
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((bool)value^(parameter as bool? == true)).ToVisibility();
}
}
Si va a hacer esto, debe utilizar 'NotSupportedException',' NotImplementedException' es para la funcionalidad que no está actualmente implementada, pero lo será. – Lukazoid