Есть ли способ перезагрузить DataGrid, не выходя из вида? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть приложение с представлением, которое содержит одну DataGrid.Он заполняется при открытии представления, но мне нужно перевести его одним нажатием кнопки.У меня есть функциональная кнопка перевода, однако мне нужно обновить DataGrid при нажатии кнопки.

Перезагрузка страницы (путем вызова метода, который обрабатывает событие загрузки) не перезагружает DataGrid.У меня нет доступного метода RefreshDataGrid (хотя я мог бы сделать его, если у кого-то есть предложения, как это сделать).У меня есть subLoadReportList (), но он не обновляет DataGrid.

Private Sub wpfTimeSheetReports_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
    Try
        Dim pstrErrMsg As String = String.Empty
        If modGlobalFunctions.ftnAuthenticateUser(pstrErrMsg) = False Then
            Dim m As New WPF_CommonControlsLibrary.CustomMessageBox(gAppNameEnglish, gAppNameFrench, pstrErrMsg, pstrErrMsg, WPF_CommonControlsLibrary.CustomMessageBox.enumMsgBoxType.ErrorMsg, gCurrentEnumLanguage)
            m.ShowDialog()
            Me.Close()
            Exit Sub
        End If

        If Not (modGlobalFunctions.ftnAuthenticateUserControlAccess(Me.GetType.FullName, IsReadOnly, pstrErrMsg)) Then
            Dim m As New WPF_CommonControlsLibrary.CustomMessageBox(gAppNameEnglish, gAppNameFrench, pstrErrMsg, pstrErrMsg, WPF_CommonControlsLibrary.CustomMessageBox.enumMsgBoxType.ErrorMsg, gCurrentEnumLanguage)
            m.ShowDialog()
            Me.Close()
            Exit Sub
        End If

        subLoadReportList()
        dgDefinedReport.SelectedValue = 0

    Catch ex As Exception
        strError = ex.Message & vbCrLf & " IN: " & Me.GetType.FullName
        Throw New LegalServicesException(ex)
    Finally
        If strError.Length() > 0 Then
            modGlobalFunctions.DisplayErrorMsg(strError, strError)
            strError = String.Empty
        End If
    End Try
End Sub

Private Sub subLoadReportList()
    Try
        If CurrentLanguageSelection = enumLanguage.English Then
            dgDefinedReport.ItemsSource = ActiveReports
            dgDefinedReport.DisplayMemberPath = "Name_English"
            dgDefinedReport.SelectedValuePath = "Defined_Report_ID"
        Else
            dgDefinedReport.ItemsSource = ActiveReports
            dgDefinedReport.DisplayMemberPath = "Name_French"
            dgDefinedReport.SelectedValuePath = "Defined_Report_ID"
        End If

     Catch ex As Exception
        strError = ex.Message & vbCrLf & " IN: " & Me.GetType.FullName
        Throw New LegalServicesException(ex)
    Finally
        If strError.Length() > 0 Then
            modGlobalFunctions.DisplayErrorMsg(strError, strError)
            strError = String.Empty
        End If
    End Try
End Sub

Private Sub btnChangeLanguage_Click(sender As Object, e As RoutedEventArgs) Handles btnChangeLanguage.Click
    Try
        If CurrentLanguageSelection = enumLanguage.English Then
            CurrentLanguageSelection = enumLanguage.French
            Dim newCulture As CultureInfo = New CultureInfo("fr-CA")
            Thread.CurrentThread.CurrentCulture = newCulture
            gCurrentStrLanguage = "FR"
            wpfTimeSheetReports_Loaded(sender, e)
            subLoadReportList()

        ElseIf CurrentLanguageSelection = enumLanguage.French Then
            CurrentLanguageSelection = enumLanguage.English
            Dim newCulture As CultureInfo = New CultureInfo("en-CA")
            Thread.CurrentThread.CurrentCulture = newCulture
            gCurrentStrLanguage = "EN"
            wpfTimeSheetReports_Loaded(sender, e)
            subLoadReportList()

        End If
    Catch ex As Exception
        Throw ex
    End Try
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...