Я видел несколько постов, посвященных тому, как удалить UserControl, который был добавлен во время выполнения, но моя проблема немного другая. У меня есть UserControl, который состоит из изображения с маленькой кнопкой «х» в правом верхнем углу, который используется для удаления себя (UserControl) из родительского холста. Также следует отметить, что UserControl добавляется во время выполнения, когда пользователь дважды щелкает элемент ListboxItem. У меня есть обработчик события Click для кнопки в верхнем правом углу, но этот код не работает вообще. Я знаю это, потому что у меня есть точка останова в этом коде, которая не достигается, когда я нажимаю кнопку.
Итак,
- Почему не обрабатывается событие click кнопки удаления?
- Может быть, есть лучший способ реализовать это. Пожалуйста, сообщите.
Вот код, используемый для его добавления:
private void MyListBox_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (e.OriginalSource.ToString() == "System.Windows.Controls.Border" || e.OriginalSource.ToString() == "System.Windows.Controls.Image" || e.OriginalSource.ToString() == "System.Windows.Controls.TextBlock")
{
Expression.Blend.SampleData.MyCollection.Dataset lbi = ((sender as ListBox).SelectedItem as Expression.Blend.SampleData.MyCollection.Dataset);
var new_usercontrol = new MyUserControl();
new_usercontrol.MyImageSourceProperty = lbi.Image;
MyCanvas.Children.Add(new_usercontrol);
Canvas.SetLeft(new_usercontrol, 100);
Canvas.SetTop(new_usercontrol, 100);
Canvas.SetZIndex(new_usercontrol, 100);
}
}
Ниже приведен код cs для UserControl:
public partial class ModuleElement : UserControl
{
public ImageSource MyProperty
{
get { return (ImageSource)this.image.Source; }
set { this.image.Source = value; }
}
public ModuleElement()
{
this.InitializeComponent();
}
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
((Canvas)this.Parent).Children.Remove(this);
}
}
XAML:
<Grid x:Name="LayoutRoot">
<Image x:Name="image" />
<Button x:Name="RemoveButton" Content="X" HorizontalAlignment="Right" Height="17.834" Margin="0" VerticalAlignment="Top" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Click="RemoveButton_Click">
</Button>
</Grid>
Заранее спасибо,
Bryan