WPF ValueConverter错误处理的最佳实践是什么?

Dra*_*ake 3 wpf ivalueconverter

应该实现两个函数,我想知道我需要对输入做什么类型的验证以及如何管理错误.

Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert

End Function

Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack

End Function
Run Code Online (Sandbox Code Playgroud)

我需要检查的类型和参数的类型是否是我所期望的.

如果他们不是,我应该什么也不返回,并在另一个地方发现错误的行为?或者我应该在这里抛出异常或断言?

是否有最佳或建议的做法适用于此处?

slu*_*ter 5

我个人检查类型和值,然后转换它.如果由于任何原因它无法转换,那么我只是返回value未转换.我不会抛出任何异常或执行任何日志记录 - 大多数情况下很容易看到转换失败,因为您没有在UI中看到预期的项目.转换器中的记录错误可能非常昂贵,因此我可以避免它.

数据绑定(通常)无声地失败(我已经在Silverlight中使用转换器绑定了一次非常大的拟合),您可以检查Output窗口中的任何错误,并且在转换器中敲击条件断点非常简单调试任何问题都是必要的.