Получение DataGrid текущего элемента в объекте WPF - PullRequest
0 голосов
/ 22 ноября 2018

У меня проблемы с приведением текущего элемента WPF DataGrid к объекту linq-generated в течение нескольких дней.Было бы удивительно, если бы кто-то мог помочь мне выбраться из этого.Я получаю данные для DataGrid, используя запрос linq, как показано ниже:

Dim payableexpense As New exprev
Dim listofexpenses As IEnumerable(Of exprev)

Private Sub txtsearchname_TextChanged(sender As Object, e As TextChangedEventArgs) Handles txtsearchname.TextChanged
   listofexpenses = From expenses In db.exprevs
   Where expenses.school_id = currentschool.school_id AndAlso expenses.title.Contains(txtsearchname.Text.ToString) AndAlso expenses.status <> 1 AndAlso expenses.type = 1

   dgvsearchresults.ItemsSource = listofexpenses
   dgvsearchresults.Items.Refresh()
   stpexpensedetails.DataContext = payableexpense
End Sub

И для события выбора измененной DataGrid у меня есть этот код:

Private Sub dgvsearchresults_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles dgvsearchresults.SelectionChanged
payableexpense = dgvsearchresults.CurrentItem
End Sub

Но во время run-time,выдается исключение, что:

"невозможно привести объект типа 'ms.internal.namedobject' к 'exprev'"

В другом месте моего проекта, тот же подход работает нормально.

1 Ответ

0 голосов
/ 22 ноября 2018

Используйте метод TryCast, чтобы попытаться привести свойство SelectedItem к exprev:

Private Sub dgvsearchresults_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles dgvsearchresults.SelectionChanged
    Dim selectedItem As exprev = TryCast(dgvsearchresults.SelectedItem, exprev)
    If selectedItem IsNot Nothing Then
        payableexpense = selectedItem
        '...
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...