不在 IMultiValueConverter 上实现 ConvertBack 的正确方法
Correct way to not implement ConvertBack on a IMultiValueConverter
我有一个实现 IMultiValueConverter
的对象。它用于根据特定布尔值和特定枚举值的特定排列来绑定列的可见性,两者都是绑定数据的一部分。 ConvertBack 方法本身显然没有任何意义。
在常规 IValueConverter 上,我可以 return Binding.DoNothing,但那不是 object[]
,因此无法编译。
我目前抛出一个异常,但感觉不太理想。有没有更好的方法?
实现不支持反向转换的 IValueConverter 或 IMultiValueConverter 的 ConvertBack
方法的正确方法是抛出 NotSupportedException
.
返回 Binding.DoNothing
没有任何意义,因为无论如何都不应该调用该方法。但是如果它被意外调用,你会正确地得到一个异常,告诉你哪里出了问题。
public object[] ConvertBack(
object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
Return null
对于 IMultiValueConverter
,ConvertBack
文档明确指出:
Return null
to indicate that the converter cannot perform the
conversion or that it does not support conversion in this direction.
我有一个实现 IMultiValueConverter
的对象。它用于根据特定布尔值和特定枚举值的特定排列来绑定列的可见性,两者都是绑定数据的一部分。 ConvertBack 方法本身显然没有任何意义。
在常规 IValueConverter 上,我可以 return Binding.DoNothing,但那不是 object[]
,因此无法编译。
我目前抛出一个异常,但感觉不太理想。有没有更好的方法?
实现不支持反向转换的 IValueConverter 或 IMultiValueConverter 的 ConvertBack
方法的正确方法是抛出 NotSupportedException
.
返回 Binding.DoNothing
没有任何意义,因为无论如何都不应该调用该方法。但是如果它被意外调用,你会正确地得到一个异常,告诉你哪里出了问题。
public object[] ConvertBack(
object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
Return null
对于 IMultiValueConverter
,ConvertBack
文档明确指出:
Return
null
to indicate that the converter cannot perform the conversion or that it does not support conversion in this direction.