Tôi đồng ý với câu trả lời của @Todd White.
Ngoài ra, để tiết kiệm thời gian, bạn có thể triển khai lớp chuyển đổi cơ sở thực hiện ConvertBack
cho bạn để bạn không phải triển khai nó mỗi lần lưu mã trùng lặp.
Về mặt kỹ thuật, bạn không phải ghi đè Convert
một trong hai; Nhưng nó phải được thực hiện trong ConverterBase
vì nó thực hiện tất cả các phương thức của giao diện IValueConverter
. Trong thực tế, bạn sẽ ghi đè hầu hết thời gian là Convert
và ConvertBack
.
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();
}
}
Nếu bạn định làm điều này, bạn nên sử dụng 'NotSupportedException', 'NotImplementedException' là dành cho chức năng hiện chưa được triển khai nhưng sẽ là. – Lukazoid