2013-08-03 2 views
0

사용자는 행을 두 번 클릭하거나 행을 선택하고 단추를 클릭하여 DataGrid에서 선택할 수 있습니다.WFP - 새 탭을 열 때 이상한 동작

첫 번째 방법을 사용하면 새 페이지가 초기화되지만로드 된 이벤트는 시작되지 않습니다.

두 번째 방법을 사용하면 새 페이지가 초기화되고 이전 페이지가 언로드 된 이벤트를 시작하고 새 페이지가로드 된 이벤트를 시작하고 새 탭이 열립니다.

click과 doubleclick 이벤트가 모두 동일한 하위를 실행하므로 하나의 이유와 다른 이유가 무엇인지 파악할 수 없습니다. 디버그가 아닌 경우 첫 번째 방법을 사용하여 새 탭이 형성되고로드 될 때 클릭됩니다. 이벤트가 발생하지만 디버그에는 표시되지 않습니다.

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 
+0

다른 8 시간 동안 답으로 업데이트 할 수 없습니다 문제를 해결하지만 :-) 그것을 밖으로 분류 e.handled 추가 – gchq

답변

관련 문제