2012-04-30 5 views
0

나는 변수가 bool Selected 인 사용자 지정 사용자 지정 컨트롤이 있고이 컨트롤이 선택되어 있는지 확인하는 코드가 있습니다.이 코드가 강조 표시되어 있으면 선택 표시되어 있지 않으면 강조 표시가 숨겨집니다. 충분히 간단합니다.개체 통신

이제는 해당 객체로 채워진 패널이 있으며 모든 파일 탐색기 (예 : Windows 탐색기)와 유사하게 작동해야합니다. 내 말은, 항목을 클릭하면 그 항목이 선택된다는 것입니다. 그게 문제가 아니에요, 마우스 클릭 일뿐입니다. 사용자가 다른 항목을 선택하려고 할 때 이 문제가됩니다.

은 내가 기본적으로 원하는 것은 :

사용자가 항목을 클릭 할 때마다

, 다른 모든 항목 선택 취소 등.

나는 최선의 방법을 찾기 위해 노력하고 있었는데, 내 마음에 있던 모든 것은 그 작업을 지시하는 부모 클래스를 가지고있다. (bool을 변경하고 업데이트 함수를 호출한다.) 너무 어설픈 것처럼 보인다. 조금 복잡해. 어떤 제안?

감사합니다.

+0

완전히 읽지 않았습니다. 죄송합니다. 정확히 무엇을 선택하고 있습니까? 파일, 그림? – moowiz2020

+0

어떤 플랫폼? winform, wpf ??? –

+0

기본적으로 WPF 항목 컨트롤에서 단일 선택을 구현하는 방법을 묻습니다. – Tormod

답변

1

가장 일반적인 방법은 선택 가능한 수와 같은 규칙을 관리하고 유용한 정보와 이벤트 (예 : SelectedItem 및 SelectedItemChanged)를 제공하는 "컬렉션"구성 요소입니다.

+0

이것을 "수동으로"수행 할 수있는 방법을 제안 해 주시겠습니까? (이후 약간 조정할 것을 찾고 있습니다) – MasterMastic

+0

새 컬렉션 구성 요소를 만들면 다른 곳에서이 컬렉션을 다시 사용할 수 있습니다. 그러나 신속하고 더러운 해결책은이 관리 코드를 직접 양식에 넣는 것입니다. 그러나 전용 컬렉션 구성 요소를 만드는 것이 좋습니다. – overslacked

+0

나는 내 대답에서 무엇을했는지 설명했지만, 당신이 잘 대답했기 때문에 여전히 최선의 답을 얻어야한다고 생각합니다. - 감사합니다. – MasterMastic

0

첫 번째 아이디어를 찾을 수있는 가장 좋은 방법을 찾았습니다 ("바퀴를 새롭게 만들자", 그렇지 않다면 과장된 답변이이 경우에 유용했습니다). 해당 사용자 컨트롤 목록이있는 클래스를 만들고 사용자 컨트롤에 해당 목록의 속성을 부여했습니다.

그래서 사용자 정의 컨트롤을 선택하려면 해당 클래스의 모든 컨트롤을 선택 취소하고 클릭 한 클래스를 선택하는 클래스 내부의 함수를 클릭 이벤트에 포함 시켰습니다.

내가 기대했던 것처럼 조금 엉성한 것처럼 보였지만 실제로 내 마음에 그 사실을 알리면 분명하고 체계적으로 만들 수 있기 때문에 다른 사람들이이 정보를 필요로하고 궁금해 할 수 있습니다.