2013-04-25 2 views
1

У меня есть GridView, который показывает определенные элементы в нем. У каждого элемента есть кнопка редактирования, нажатие кнопки редактирования загружает пользовательский элемент управления рядом с элементом. У этого usercontrol есть закрытая кнопка, нажатие кнопки закрытия удаляет пользовательский контроль. GridView with the items(blue color rectangles)Удаление пользовательского контроля нажатием на него кнопки

GridView after the edit button on the item(blue color rectangles) is clicked and usercontrol(red color rectangle) is loaded next to it

Синий цвет прямоугольники представляют элементы в GridView. При нажатии кнопки «розовый» добавляется пользовательский контроль красного цвета. Теперь нажав кнопку закрытия на красном прямоугольнике, он должен удалить элемент красного цвета и вернуться в исходное состояние. Я добавил usercontrol с помощью селектора шаблонов, и он работает нормально. Но кнопка закрытия не удаляет ее. Я попытался следующие подходы для удаления:

(GridView)this.Parent).Items.Remove(this);

При добавлении точки останова, а затем проверку я обнаружил, что this.Parent является недействительным. Я застрял. Как я могу продолжить? Я использую C#, XAML, WinRT, Visual Studio 2012

+0

Я слышал, что родительское свойство автоматически не устанавливается в конструкторе. Вы пытались установить родителя вручную после создания элемента управления? Как 'yourobj.parent = topobject'? – Julian

+0

Привет @Julian Thanx :) На самом деле это невозможно, поскольку usercontrol - это в основном шаблон данных. Я изменил datacontext, который решил мою проблему на данный момент :) – Vanya

+0

Считается вежливым, чтобы отметить правильный ответ. –

ответ

0

Если вам нужно работать до визуального дерева, попробуйте следующее:

var _Parent = VisualTreeHelper.GetParent(sender as UserControl) as GridView; 
_Parent.Items.Remove(sender as UserControl); 

Но удаление элементов из GridView должно быть сделано манипулируя ObservableCollection оценка в ItemsSource GridView в ViewModel. Не так, наверное ...

Смежные вопросы