private void BtFilePath_Click(object sender, RoutedEventArgs e) { Button bt = sender as Button; string filePath = bt.Tag.ToString(); ItemSource.Remove(ItemSource.Where(c => c.FilePath.Equals(filePath)).FirstOrDefault()); //find the control parent that wrapped this button and other control //Ex: var parent = FindParent<DependencyObject>(bt, "wrapPanel"); var parent = FindParent <DependencyObject>(bt); if (parent != null) { wrapPanel.Children.Remove(parent as StackPanel); } }