#c# #wpf
#c# #wpf
Вопрос:
Я нашел решение своего вопроса, но оно у меня не работает.
у меня есть две формы WPF, отличные от формы MinWindow. я хочу получить доступ к общедоступной функции Data()
form1 в form2. я пытался (Application.Current.MainWindow as MainWindow).Data();
в form2 получить доступ к Data()
функции form1, но ничего не произошло. Пожалуйста, предложите решение
Комментарии:
1. Это mainwindow или form1? Потому что, если вы выполняете как mainwindow и это не тот тип, тогда вы получаете null. На самом деле, я ожидал бы ошибки. Итак, он вызывает метод, но этот метод не выполняет то, что вы ожидаете?
2. Метод существует в form1, а не в mainwindow. И функция вообще не выполняется
3. Открыта ли form1 вообще в первом окне?
Ответ №1:
Это то, что я использую, когда мне нужно вызвать общедоступное свойство, функцию или метод. Если вы используете C #, переключиться с моего примера на VB не составит труда.
Dim winOriginalWin As MainWindow
winOriginalWin = Application.Current.Windows(0)
winOriginalWin.PublicFunction()
Все окна, открытые в приложении WPF, будут иметь связанную с ним позицию индекса, которую вы можете использовать для установки ссылки на этот экземпляр окна. Дайте мне знать, работает ли это для вас или нет.
Если Form1 открыта как второе окно в приложении, я бы предложил:
Dim winForm1 As Form1
winForm1 = Application.Current.Windows(1)
winFrom1.Data()