如何关闭后台文件中的用户控件

本文关键字:用户 控件 文件 何关闭 后台 | 更新日期: 2023-09-27 17:51:00

我是WPF的新手,所以请理解:

我有一个usercontrol类,它实现了一个带有包含控件的网格的屏幕(对话框)。我的后台代码文件在打开对话框之前执行一系列检查。如果条件不满足,我想销毁/退出/卸载/关闭用户控件。我正在使用Windows,似乎我找不到关闭用户控件的调用。我仔细研究了那些有答案的问题,比如来自父母的关闭……然而,当我试图找到父母通过这个。父元素,返回null

任何建议吗?

如何关闭后台文件中的用户控件

如果你的条件不满足,你甚至没有显示usercontrol -不要初始化它

如果无法避免,您可以选择调用Dispose()或让GC处理它。

要从用户控件获取父控件,我使用这个

var parentwwindow = window . getwwindow (this);

但我同意Andreas的观点,如果条件不满足,甚至不加载它。

你是否可以绑定网格的内容,或者从绑定对象中删除用户控件。

吉姆

我猜您已经在xaml中添加了用户控件。这就是为什么你甚至需要担心卸载它。尝试在代码中加载它。在你的xaml中有一个容器,比如一个堆栈面板来容纳用户控件。

除非你的条件不满足,否则不要加载它。

,

xaml;

<UserControl x:Class="UserControl2"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300"
         >
    <Grid>
       <StackPanel x:Name="mypanel">                            
       </StackPanel>
    </Grid>
</UserControl>

代码;

 if(conditions are true) then
     Dim myusercontrol = New ucMyControl()
     Me.mypanel.Children.Add(myusercontrol)
 end if