2013-04-25 3 views
1

특정 항목이 표시된 GridView가 있습니다. 각 항목에는 편집 단추가 있으며 편집 단추를 누르면 해당 항목 옆에 사용자 정의 컨트롤이로드됩니다. 이 사용자 정의 컨트롤에는 닫기 버튼이 있습니다. 닫기 버튼을 누르면 사용자 정의 컨트롤이 제거됩니다. 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가 null 것으로 나타났습니다 확인 후 중단 점을 추가하고에. 내가 갇혔다. 어떻게해야합니까? 당신이 시각적 트리를 작동해야하는 경우 나 C#을, XAML, winrt, 비주얼 스튜디오 2012

+0

부모 속성이 생성자에서 자동으로 설정되지 않는다고 들었습니다. 통제 후에 부모를 수동으로 설정하려고 시도 했습니까? 'yourobj.parent = topobject'처럼? – Julian

+0

안녕하세요 @ 율리안 탄 :) 사실은 usercontrol 기본적으로 데이터 템플릿으로 불가능합니다. 당분간 내 문제를 해결 한 datacontext를 변경했습니다. – Vanya

+0

정답으로 표시하는 것은 정중 한 것으로 간주됩니다. –

답변

0

를 사용하고,이 시도 :

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

그러나의 GridView에서 항목을 제거하는 것은 ObservableCollection에 바운드 조작에 의해 수행되어야한다 ViewModel의 GridView의 ItemsSource에 추가합니다. 아마 이것처럼, 아마도 ...

관련 문제