Вынуждение UserControl удалить себя (WPF)

В winforms я обычно делаю Parent.Controls.Remove(this);, чтобы удалить UserControl. Это не работает для wpf. На моем элементе управления есть кнопка для удаления всего UserControl, есть идеи, как это сделать в wpf? заранее спасибо


person Josh    schedule 23.11.2010    source источник
comment
вы хотите удалить userocntrol, в котором есть кнопка? какой тип родительского контейнера?   -  person Arsen Mkrtchyan    schedule 23.11.2010
comment
не могли бы вы предоставить разметку XAML, чтобы было понятно?   -  person Pavel Morshenyuk    schedule 23.11.2010
comment
@ArsenMkrt - панель стека является родительской, но я бы предпочел, чтобы элемент управления был общим и не ограничивался родительским типом.   -  person Josh    schedule 23.11.2010


Ответы (1)


Вам нужно будет знать тип свойства Parent, чтобы удалить себя из родительского контроля.

Все родительские элементы типа Panel (Grid, WrapPanel, StackPanel) имеют свойство Children:

то есть для сетки:

((Grid)button.Parent).Children.Remove(this);

ContentControls (Button, ContentControl, Border) имеют содержимое:

то есть для кнопки:

((Button)control.Parent).Content = null;
person Arcturus    schedule 23.11.2010
comment
Ааа! Ясно спасибо! Я думаю, что приведение к базовому типу Panel больше подходит, хотя :) - person Josh; 23.11.2010