-1

私はArcGISを使用しています。見つかったデータを手動で並べ替えようとしています。プロパティ クラスを作成し、Tlist をループして不要なデータをスクラブしました。ただし、データ グリッドにバインドする直前に、キャスト エラーが発生します。何かがnullに戻ってくると思います。私は何かが欠けていますか??

 Public Class temp
    Public Sub New()
    End Sub
    Public Property DisplayFieldName As String
    Public Property Feature As ESRI.ArcGIS.Client.Graphic
    Public Property FoundFieldName As String
    Public Property LayerId As Integer
    Public Property LayerName As String
    Public Property Value As Object
End Class

Public Class templst
    Public Sub New()
        Dim findresult = New List(Of temp)
    End Sub
    Private _findresult = findresult
    Public Property findresult() As List(Of temp)
        Get
            Return _findresult
        End Get
        Set(ByVal value As List(Of temp))
            _findresult = value
        End Set
    End Property
End Class

Private Sub FindTask_Complete(ByVal sender As Object, ByVal args As FindEventArgs) 
        Dim newargs As New templst() 'puts Tlist (temp) into property
        Dim templistNUMONLY As New List(Of temp) 'Tlist of temp
            For Each r In args.FindResults 'class in compiled dll.
                 If Regex.Match(r.Value.ToString, "[0-9]").Success Then
                templistNUMONLY.Add(New temp() With {.LayerId = r.LayerId,
                                              .LayerName = r.LayerName,
                                              .Value = r.Value,
                                              .FoundFieldName = r.FoundFieldName,
                                              .DisplayFieldName = r.DisplayFieldName,
                                              .Feature = r.Feature})
                 End If
            Next

        newargs.findresult = templistNUMONLY

            Dim sortableView As New PagedCollectionView(newargs.findresult)
            FindDetailsDataGrid.ItemsSource = sortableView 'populate lists here
        End Sub

BIND TO GRID HERE: (ここでエラー)

Private Sub FindDetails_SelectionChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
        ' Highlight the graphic feature associated with the selected row
          Dim dataGrid As DataGrid = TryCast(sender, DataGrid)

          Dim selectedIndex As Integer = dataGrid.SelectedIndex
           If selectedIndex > -1 Then
          '''''''''''''''''CAST ERROR HERE:
           Dim findResult As FindResult = CType(FindDetailsDataGrid.SelectedItem, FindResult)
4

1 に答える 1

1

FindDetailsDataGridtype のオブジェクトを入力しますが、代わりtempに type にキャストしようとします。FindResultやったほうがいい:

Dim selectedTemp As temp = CType(FindDetailsDataGrid.SelectedItem, temp)
'*Create find result from selected temp object here*
于 2012-12-03T17:49:50.530 に答える