Ich stimme @ Todd White's Antwort.
Um Zeit zu sparen, können Sie außerdem eine Basiskonverterklasse implementieren, die ConvertBack
für Sie implementiert, sodass Sie sie nicht jedes Mal implementieren müssen, wenn Sie doppelten Code speichern.
Technisch müssen Sie Convert
entweder nicht überschreiben; Aber es muss in ConverterBase
implementiert werden, da es alle Methoden der IValueConverter
Schnittstelle implementiert. In der Praxis überschreiben Sie jedes Mal Convert
und ConvertBack
kann die meiste Zeit ignoriert werden.
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();
}
}
Wenn Sie dies tun, sollten Sie 'NotSupportedException' verwenden,' NotImplementedException' steht für Funktionalität, die derzeit nicht implementiert ist, aber sein wird. – Lukazoid