2013-02-13 70 views
-1

用户控制我的GroupBox其中包含多个用户控件,有删除按钮,每个用户的控制,请指导我如何删除用户控制当我删除按钮点击如何删除WPF

回答

1
<UserControl x:Class="WpfApplication1.UserControl1" 
     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" Height="60" Width="150"> 
<Grid> 
    <Border BorderThickness="2" BorderBrush="Red" Background="Black"> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="*"/> 
       <RowDefinition Height="*"/> 

      </Grid.RowDefinitions> 
      <TextBlock Text="Abcd" Background="Red"/> 
    <Button Content="Delete" Grid.Row="1" Click="Button_Click"/> 
     </Grid> 
    </Border> 
</Grid> 

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    public Action Delete; 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     if(Delete!=null) 
      Delete(); 
    } 

} 

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:uc="clr-namespace:WpfApplication1" 
    xmlns:local="clr-namespace:WpfApplication1" 
    Width="1000" Height="1000" 
    Title="MainWindow" x:Name="abc"> 
<Grid> 
    <GroupBox Header="Group"> 
     <GroupBox.Content> 
      <Grid x:Name="LayoutRoot"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="*"/> 
        <RowDefinition Height="*"/> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 
       <local:UserControl1 x:Name="uc1"/> 
       <local:UserControl1 x:Name="uc2" Grid.Row="1"/> 
      </Grid> 
     </GroupBox.Content> 
    </GroupBox> 
</Grid> 

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = this; 
     uc2.Delete += OnDelete; 
    } 
    private void OnDelete() 
    { 
     LayoutRoot.Children.Remove(uc2); 
    } 
} 

我希望这会帮助你。

+0

嗨它的工作正常,但只有一个用户控制,你可以指导我如何调用两个以上的用户控制 – Ghufran 2013-02-14 04:10:05

+0

感谢它运作良好,我只是通过用户控制的参考 – Ghufran 2013-02-14 06:18:12

+0

这虽然它回答了这个问题,与良好的WPF设计是对立的。 – Will 2013-02-14 15:51:36