c# - 单击子按钮时删除父用户控件
问题描述
我在堆栈面板中添加了一个 UserControl,并且该 UserControl 包含一个按钮。当单击它的子按钮时,我试图删除该 UserControl。但它不起作用!
堆栈面板
<StackPanel Name="StackPanelContainer" Grid.Row="3"> </StackPanel>
在 StackPanel 中添加控件
private void NewProducModule(object sender, RoutedEventArgs e)
{
UserControl productModules = new AddProductModule();
productModules.Name = "Product" + StackPanelContainer.Children.Count;
StackPanelContainer.Children.Add(productModules);
}
UserControl点击方法的子Button
private void DeleteSelfProduct(object sender, RoutedEventArgs e)
{
FrameworkElement parent=(FrameworkElement)((Button)sender).Parent;
NewInvoiceControl newInvoiceControl = new NewInvoiceControl();
newInvoiceControl.StackPanelContainer.Children.Remove(parent);
}
解决方案
尝试从其子项中清除 StackPanel。StackPanel 很好折叠。
private void DeleteSelfProduct(object sender, RoutedEventArgs e)
{
StackPanelContainer.Children.Clear();
}
或者您可以从它的父级中删除 StackPanel。如果你认识父母。
private void DeleteSelfProduct(object sender, RoutedEventArgs e)
{
var parent = (StackPanel)StackPanelContainer.Parent;
parent.Children.Remove(StackPanelContainer);
}
推荐阅读
- php - 在没有文件扩展名的 XML 中使用 PHP
- java - 在 JFrame.invalidate 中调用 pack() 是不是一个坏主意?
- python-2.7 - 卡夫卡火花集成
- python-3.x - beautifulsoup4:如何解析论坛帖子?
- ruby - XPath 中的 `@attr!="value"` 和 `not(@attr="value")` 有什么区别
- python - 从 sklearn 数据集中随机采样数据
- javascript - 想知道为什么没有按预期工作?
- sql - SQL 根据其他列返回列
- c# - 从发件人处查找打开的表单
- mysql - GROUP BY 一列和 COUNT 两列