2014-01-05 4 views
0

Я не знаю, почему он не работает ни с каким потоком, который я уже нашел здесь об этой проблеме. Я просто хочу получить доступ к ярлыку из другого окна. Так вот 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 

Я знаю, что это MVVM и это полностью отличается от Windows Forms. Так что, может быть, кто-то может помочь мне с этим маленьким примером.

Итак, как я могу изменить содержание этой метки?

ответ

1

Перед тем, как открыть PopupBox, установите Owner как MainWindow, и вы можете получить к нему доступ из всплывающего окна с использованием свойства 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». Я опубликовал синтаксис C#. Как вы выписываете в VB.Net? –

+0

У меня есть ответ на обновление с версией VB.Net. Надеюсь, что это поможет. –

Смежные вопросы