2014-01-05 2 views
0

이 문제에 대해 이미 여기에서 발견 한 모든 스레드에서 왜 작동하지 않는지 알 수 없습니다. 다른 창에서 레이블에 액세스하려고합니다. 그래서 여기 내가이 MVVM 있다고 알고 MainWindow를다른 창에서 요소에 대한 액세스

Public Class MainWindow 
    Private WithEvents _popUpBox As NewCompany 
    Private Sub Button_NewGame_Click(sender As Object, e As RoutedEventArgs) Handles Button_NewGame.Click 
     If _popUpBox Is Nothing Then 
      _popUpBox = New NewCompany 
      _popUpBox.ShowDialog() 
     Else 
      _popUpBox.Activate() 
     End If 
    End Sub 
End Class 

과 NewCompany/popUpBox

Public Class NewCompany 
    Private Sub Button_Confirm_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button_Confirm.Click 
     MainWindow.Label_Company.Content = "Some Company" 
    End Sub 
End Class 

하고는 Windows Forms의 완전히 다릅니다. 어쩌면 누군가가이 작은 예를 통해 나를 도울 수 있습니다.

그래서 어떻게이 라벨의 내용을 바꿀 수 있습니까?

답변

1

PopupBox를 열기 전에 OwnerMainWindow으로 설정하고 Owner 속성을 사용하여 팝업 창에서 액세스 할 수 있습니다.

MainWindow를

_popUpBox = New NewCompany 
_popUpBox.Owner = Me 
_popUpBox.ShowDialog() 

팝업 창

DirectCast(Owner, MainWindow).Label_Company.Content = "Some Company" 
+0

내가 여기 구문 오류를 받고 있어요 : ((MainWindow를) 소유자) .Label_Company.Content = "일부 회사" – kwoxer

+0

Owner를 MainWindow로 typecast해야합니다. C# 구문을 게시했습니다. VB.Net에서 어떻게 형변환합니까? –

+0

VB.Net 버전으로 업데이트 대답이 있습니다. 희망이 도움이 될 것입니다. –

관련 문제