WPF Designer绑定转换器抛出对象引用未设置为对象的实例

时间:2016-04-29 16:29:11

标签: wpf vb.net xaml

我的XAML设计器显示对象引用没有设置为实例错误我在绑定时使用我的转换器之一。在挖掘了很多之后,我发现它发生在这条特定的线上,因为它无法在设计时找到值。

TransactionViewModel.getInstance()

即使我试图通过检查它是否为空来避免它,它仍然会抛出对象引用错误

TransactionViewModel是一个带有' getInstance()'的单例类。获取实例的函数。

这是我的转换功能如下

Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
    Dim FieldName As String = value.ToString
    Dim FieldNum As Integer = Integer.Parse(parameter)

    If TransactionViewModel.getInstance IsNot Nothing Then
        If TransactionViewModel.getInstance._NR IsNot Nothing Then
            If TransactionViewModel.getInstance._NR.ContainsField(FieldNum, FieldName) Then
                Return Visibility.Visible
            Else
                Return Visibility.Hidden
            End If
        End If
    End If
    Return Visibility.Visible
End Function

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

请尝试使用它可能会对您有所帮助

if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
{
    //Code that throws the exception
   //Code that return null
}

VB:

If Not System.ComponentModel.DesignerProperties.GetIsInDesignMode(New DependencyObject) Then
        'Code that throws the ex
        'Code that return null
End If