2012-08-28 1 views
0

관련된 UI 요소 집합을 제거하는 가장 좋은 방법은 무엇이 좋을까요?관련된 WPF UI 요소 그룹 제거를 처리하는 방법

이것이 내가 수행하고있는 작업입니다. 저는 Verticle Scrollviewer 안에 Grid가 내장되어 있습니다. 사용자는 버튼 클릭을 통해 런타임 중에 여러 ListBox를이 Grid에 추가 할 수 있습니다. 각 ListBox를 추가하면 올바른 수의 Grid Rowdefinition과 Gridsplitter가 추가되어 각 Listbox의 크기를 조정할 수 있습니다. 이 부분은 잘 작동합니다.

트릭은 사용자가 목록 상자를 닫을 수있는 옵션입니다. 이 작업을 수행 할 때 닫는 목록 상자에 "속한"해당 Rowdefinitions 및 Gridsplitter를 제거해야합니다.

Grid.Children과 Grid.Rowdefinitions를 반복하여 제거 할 Rowdefinition과 Gridsplitters를 쉽게 파악할 수있었습니다. 그러나 이것을 처리하는 더 좋은 방법이 있는지 궁금합니다. 아마도 컬렉션에서 이러한 요소를 그룹화하고이 컬렉션을 단순히 제거하는 것이 급습에 빠졌습니까? 그래도 어떻게해야할지 모르겠다.

모든 아이디어 나 제안을 바랍니다.

답변

1

나는 시각적/논리적 트리 내에서 그들을 연관 짓는 확실하고 간단한 방법을 알지 못하지만 내용으로 제거하려는 요소의 키로 연결된 연관 배열 (Dictionary<T, U>)을 확실히 사용할 수 있습니다. 제거해야 할 다른 항목

나는 이것이 본질적으로 당신이 묘사 한 것이라고 생각합니다.

당신이 특별한 필요가 없다면 더 복잡한 것은 가치가 없을 것입니다. :)

+0

다른 제안이 없기 때문에 다른 컨트롤의 .Tag 속성을 사용하여 이러한 요소가 속한 ListBox의 HashCode를 저장하기로 결정했습니다. 그런 다음 닫는 Listbox의 HashCode와 일치하는 Children 요소와 RowDefinitions를 제거하여 Children 요소 및 GridDefinitions의 Grid 컬렉션을 반복합니다. –

관련 문제