首页 > 解决方案 > 单击子按钮时删除父用户控件

问题描述

我在堆栈面板中添加了一个 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);
}

标签: c#.netwpfxaml

解决方案


尝试从其子项中清除 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); 
}

推荐阅读