none
即时窗口老是出现这个错误 求大家帮帮忙!System.Windows.Data Error: 35 : BindingExpression path error RRS feed

  • 问题

  • System.Windows.Data Error: 35 : BindingExpression path error: 'FactoryEMail' property not found on 'object' ''DataRowView' (HashCode=15584387)'. BindingExpression:Path=FactoryEMail; DataItem='DataRowView' (HashCode=15584387); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

    其他字段都一样 但不会出现这个问题
    部分代码如下:
            Dim i As Integer
            Dim g As New GridView
            Dim gc As GridViewColumn
            Dim gcc As GridViewColumnHeader
            If _LastIndex = -1 Then
                Return "No Child Found"
            End If
           
            g.AllowsColumnReorder = True
            Populate = ""
            CascadeInId = 0
            AddHandler SelectionChanged, AddressOf _RowClickHandler
            AddHandler ContextMenuOpening, AddressOf ContextMenuOpeningHandler
            Try

                _dtable = _data.Tables(0)
                ItemsSource = _dtable.DefaultView
            Catch ex As Exception

            End Try
            For i = 0 To _LastIndex
                If Not _bcInfo(i).gc Is Nothing Then
                    g.Columns.Remove(_bcInfo(i).gc)
                End If
                If ((_bcInfo(i).Flag And eBrowseFlag.NotVisible) = 0) And (_bcInfo(i).FieldName.Length > 0) Then
                    gc = New GridViewColumn
                    gc.DisplayMemberBinding = New Binding(_bcInfo(i).FieldName)
                    gc.Width = 100
                    gcc = New GridViewColumnHeader
                    gcc.Content = _bcInfo(i).Caption
                    gc.Header = gcc
                    AddHandler gcc.Click, AddressOf _HeaderClickHandler
                    g.Columns.Add(gc)
                    _bcInfo(i).gc = gc

                ElseIf ((_bcInfo(i).Flag And eBrowseFlag.CascadeIn) <> 0 Or (_bcInfo(i).Flag And eBrowseFlag.CascadeOut) <> 0) Then
                    ' [TODO]
                    'Does it need a column to contain cascade data, which should not be visible to user

                    gc = New GridViewColumn
                    gc.Header = _bcInfo(i).Caption
                    gc.DisplayMemberBinding = New Binding(_bcInfo(i).FieldName)
                    gc.Width = 100
                    g.Columns.Add(gc)
                    gc.Width = 0
                    _bcInfo(i).gc = gc
                End If
            Next
            View = g

    2009年7月4日 7:52

答案

  • 这个错误没有关系的,错误是说明你的代码里面Binding的Path没有设置正确,就是说Path里面指定的路径(或者简单来说就是属性啦),在你的DataContext里面找不到。WPF将这个信息在调试器里面输出出来,只是提醒你注意,不会影响代码的稳定性的。
    2009年7月9日 16:37

全部回复

  • 您好,

    你可以把一个简化的测试工程发我邮箱吗?我来看看。我的邮箱:v-jimz@microsoft.com  或是用MSN联系:zhoujiguo1985@live.cn

    谢谢。


    Jim Zhou -MSFT
    2009年7月7日 6:58
    版主
  • 这个错误没有关系的,错误是说明你的代码里面Binding的Path没有设置正确,就是说Path里面指定的路径(或者简单来说就是属性啦),在你的DataContext里面找不到。WPF将这个信息在调试器里面输出出来,只是提醒你注意,不会影响代码的稳定性的。
    2009年7月9日 16:37
  •  

    你好,

    Killmyday提供了一个很好的贴子。 一般WPF出现binding错误的时候不会抛出异常,而是把错误信息显示在output窗口,你可以再检查一下你的bind数据源. 你当前错误信息显示''DataRowView' 中不到'FactoryEMail' 属性.

     

    谢谢。


    Jim Zhou -MSFT
    2009年7月10日 7:55
    版主