我的孩子窗口未在WPF中关闭

时间:2014-12-28 10:29:35

标签: wpf vb.net

我在WPF工作,我正面临着关于NDI容器的问题 在我的MainWindow Xaml中,我有MainMdiContainer

<mdi:MdiContainer Theme="Aero" mdi:MdiChild.Closed="MdiChild_Closed"  Margin="0,0,0,80" Name="MainMdiContainer" Grid.Row="1" Background="{x:Null}">
 </mdi:MdiContainer>

当然我有另一个名为“Registration”的xaml页面,我在mainWindow中也有一个按钮来打开mdiChild

Public Sub btnAddUser_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnAddUser.Click
        MainMdiContainer.Children.Clear()
        MainMdiContainer.Children.Add(New MdiChild() With { _
         .Title = "Πρόγραμμα Εσωτερικής Διαχείρισης Διορισμός Επιτροπής και Χρηστών", _
         .Height = (System.Windows.SystemParameters.PrimaryScreenHeight - 500), _
          .Width = (System.Windows.SystemParameters.PrimaryScreenWidth - 430), _
         .Style = Nothing, _
         .Content = New Registration() _
        })
    End Sub

Public Sub MdiChild_Closed(sender As System.Object, e As System.Windows.RoutedEventArgs)
        For Each child As MdiChild In MainMdiContainer.Children.ToList()
            If (child.Name.ToString().Contains("mdiChildRegistration")) Then
                MainMdiContainer.Children.Remove(child)
            End If
        Next
    End Sub

直到这个阶段一切顺利,mdiChild打开了 现在我想通过按一个按钮来关闭子窗口

Private Sub btnClose_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnClose.Click
    Dim mainWin As New MainWindow
    Dim mdiCont As MdiContainer = mainWin.MainMdiContainer
    mainWin.MdiChild_Closed(sender, e)

    End Sub

但是mdiChild并没有关闭......实际上mdiCont中的Childern是空的。 当我添加一个儿童

<mdi:MdiChild IsTabStop="False" />

在MainWindow中,mdiCont中的Childern不是空的它有一个孩子,当我试图通过按下按钮打开我的孩子时,它就会关闭。 我怀疑添加过程中的某些内容与我有关,但我不知道是什么。 有人帮我吗?

1 个答案:

答案 0 :(得分:0)

最后,我已经完成了清理子窗口 所有这些都来自后面的子代码

Private Sub btnClose_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnClose.Click
        Dim mainWin As MainWindow = Economy.Application.Current.MainWindow
        mainWin.MainMdiContainer.Children.Clear()

在mainWin的声明中,它必须被称为

  

&#39; Object.Application.Current.MainWindow&#39;

为了传输子窗口属性并具有清除它的能力 未删除,因为删除不清除子窗口 非常感谢@dymanoid。