2010-04-08 4 views
1

특정 그룹에 속한 사용자 목록을 쉽게 유지 관리 할 수있는 방법을 찾고 있습니다.
나는 2 개의 목록 상자가있는 선택 목록 사용에 대해 생각해 본다. 첫 번째 목록에는 두 번째 사용자 그룹 목록이 포함되어있다. 선택한 사용자를 그룹에 추가하고 제거 할 수있는 버튼이 있습니다. 사용자가 추가되면 왼쪽 목록 상자에서 오른쪽으로 이동합니다. 제거되면 오른쪽에서 목록으로 이동합니다. 이것은 꽤 일반적인 상황입니다.WPF MVVM Picklist 예제

MVVM 패턴을 사용하여 WPF에서이 작업을 수행하는 예가 있습니까?

바인딩이 내 View Model 및 비즈니스 엔터티에 어떻게 작동하는지 이해하는 데 어려움이 있습니다. 특히 데이터를 데이터베이스에 다시 보존합니다. 나는 CRUD 로직을하기 위해 스토어드 프로 시저 호출을 사용하고 있는데, 그래서 삭제 될 수 있도록 사용자가 제거 된 목록을 유지해야한다.

이 기능을 수행하는 가장 좋은 방법인가요? 더 좋은 방법이 있습니까? 나는 단순히 목록에서 선택하기를 원할뿐입니다 (목록이 클 수도 있습니다).

답변

1

이것은 구현이 간단해야합니다. 뷰 모델에서 두 개의 관찰 가능한 컬렉션 속성을 만듭니다. 하나는 그룹에 속하지 않은 사용자를 포함하고 다른 하나는 사용자를 포함합니다. 또한 각 컬렉션에 대해 선택된 항목 속성을 만듭니다. 항목 컨트롤 'ItemsSourceSelectedItem 속성을이 속성에 바인딩합니다. 그런 다음 한 컬렉션에서 선택한 항목을 제거하고 다른 항목에 추가하는 명령을 구현하고 해당 명령을 단추에 바인딩하십시오.

제거 된 사용자를 추적하는 가장 쉬운 방법은 아닙니다. 데이터베이스를 업데이트 할 때가되면 뷰 모델의 콜렉션 내용을 데이터베이스의 내용과 비교하십시오. 개체가 "그룹에 있지 않음"컬렉션에 있고 데이터베이스에 그룹에 있다고 생각되면 제거하십시오. 개체가 "그룹 내"컬렉션에 있고 데이터베이스가 그렇지 않다고 생각하면 추가하십시오.

+0

답장을 보내 주셔서 감사합니다.이 컨트롤을 '선택 목록'이라고 부르겠습니까? 아니면 올바른 용어가 있습니까? – Tim