如何关闭后台文件中的用户控件
本文关键字:用户 控件 文件 何关闭 后台 | 更新日期: 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