DirectCast любое окно, а не только главное окно?

Я пытался редактировать переменные в других окнах, как в VB.NET, используя DirectCast. Кажется, это работает очень хорошо с главным окном, так как я использую

Private Main As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)

Но я не могу найти способ использовать это с окном, кроме основного. Сейчас я застрял, используя это

Dim WindowOne As New Window1
WindowOne.Show()

Это работает, но я бы предпочел не создавать новый экземпляр окна каждый раз, когда я хочу его открыть. Я пытался использовать

Private WindowOne As Window1 = DirectCast(Application.Current.Windows.OfType(Of Window1).First(), Window1)

но это всегда дает мне ошибку, говоря, что "последовательность не содержит элементов".

Есть ли другой способ сделать это? Что я делаю неправильно?

1 ответ

Решение

Правильный синтаксис ниже.

Private WindowOne As Window1 = Application.Current.Windows.OfType(Of Window1)().FirstOrDefault()
If Not WindowOne Is Nothing Then
  'object is available here
End If
Другие вопросы по тегам