0

ユーザーは、行をダブルクリックするか、行を選択してボタンをクリックすることにより、DataGrid から選択できます。

最初のメソッドを使用すると、新しいページが初期化されますが、ロードされたイベントは発生しません。

2 番目の方法を使用すると、新しいページが初期化され、古いページがアンロード イベントを発生させ、新しいページがロード イベントを発生させ、新しいタブが開きます。

クリック イベントとダブルクリック イベントの両方が同じサブを起動しているため、一方が機能し、もう一方が機能しない理由がわかりません。デバッグしていないときは、最初のメソッドを使用して新しいタブが形成され、クリックすると読み込まれたイベントが発生します。 、しかしこれはデバッグには表示されません。

Private Sub Reports_BalanceSheets_EditRecord(sender As Object, e As RoutedEventArgs)
    Try
        NewRecord = False
        Dim DGV As CustomControl.DGVx = Reports_BalanceSheets_Grid.FindName("Reports_BalanceSheets_DGV")
        If DGV.SelectedItems.Count = 1 Then
            Dim row As System.Data.DataRowView = DGV.SelectedItems(0)
            FormID = row("ID")
            Dim vName As String = row("Name")
            Dim vTab As CustomControl.STC_Tabx = Application.Current.MainWindow.FindName("Reports_BalanceSheetTab")
            Dim TabControl As CustomControl.STCx = Application.Current.MainWindow.FindName("AccountingReports_TabControl")
            Dim vImageSource As String = ReturnImageAsString("Profit_Loss.png", 16)
            If vTab Is Nothing Then
                Dim ReportsBalanceSheetFrame As New Frame

                Dim Tab As New CustomControl.STC_Tabx
                With Tab
                    .Name = "Reports_BalanceSheetTab"
                    .Header = " Edit " & vName & " "
                    .CloseButtonVisibility = DevComponents.WpfEditors.eTabCloseButtonVisibility.Visible
                    .TabToolTip = "Edit " & vName
                    .ImageSource = vImageSource
                    .Content = ReportsBalanceSheetFrame
                End With
                AddHandler Tab.Closing, AddressOf TabControl_TabClosing
                Dim vGrid As Grid = Application.Current.MainWindow.FindName("MainGrid_Website")
                RegisterControl(vGrid, Tab, Tab.Name.ToString)
                TabControl.Items.Add(Tab)


                Dim BalanceSheet As New Reports_BalanceSheet_Page
                ReportsBalanceSheetFrame.NavigationService.Navigate(BalanceSheet)
                TabControl.SelectedItem = Tab

            Else
                vTab.Close()
                Dim ReportsBalanceSheetFrame As New Frame
                Dim Tab As New CustomControl.STC_Tabx
                With Tab
                    .Name = "Reports_BalanceSheetTab"
                    .Header = " Edit " & vName & " "
                    .CloseButtonVisibility = DevComponents.WpfEditors.eTabCloseButtonVisibility.Visible
                    .TabToolTip = "Edit " & vName
                    .ImageSource = vImageSource
                    .Content = ReportsBalanceSheetFrame
                End With
                AddHandler Tab.Closing, AddressOf TabControl_TabClosing
                Dim vGrid As Grid = Application.Current.MainWindow.FindName("MainGrid_Website")
                RegisterControl(vGrid, Tab, Tab.Name.ToString)
                TabControl.Items.Add(Tab)

                Dim BalanceSheet As New Reports_BalanceSheet_Page
                ReportsBalanceSheetFrame.NavigationService.Navigate(BalanceSheet)
                TabControl.SelectedItem = Tab

            End If
        ElseIf DGV.SelectedItems.Count > 1 Then
            AppBoxValidation("You can only select one item at a time to edit!")
        Else
            AppBoxValidation("You must select an item to edit!")
        End If

    Catch ex As Exception
        EmailError(ex)
    End Try
End Sub
4

1 に答える 1

1

e.Handled を追加すると問題が解決しました

于 2013-08-05T13:42:40.480 に答える