RwOptionList
여러 선택 항목을 체크박스 목록으로 표시하고 선택된 객체와 값을 조회하는 구성요소입니다. 권한, 알림 대상, 표시 열처럼 사용자가 하나 이상의 항목을 고르는 화면에 사용합니다.
데이터 구성
목록은 List<RwListOptionItem> 형식의 ItemsSource에 연결합니다. 표시할 속성은 DisplayMember, 실제 업무 값으로 사용할 속성은 ValueMember로 지정합니다. 목록을 교체한 뒤에는 DataBind()를 호출해 표시 상태를 갱신합니다.
주요 항목
| 항목 | 형식 | 용도 |
|---|---|---|
ItemsSource |
List<RwListOptionItem> |
표시할 선택 항목 |
DisplayMember |
string |
사용자에게 보여 줄 속성명 |
ValueMember |
string |
저장·전달할 값의 속성명 |
OnEvent |
EventCallback<RwOptionListEvent> |
선택 상태 변경 알림 |
DataBind() |
메서드 | 현재 목록을 다시 표시 |
GetSelectedValues() |
메서드 | 선택된 값 조회 |
목록 표시
각 항목은 Carbon 체크박스로 표시되며, 목록이 길면 정해진 최대 높이 안에서 스크롤됩니다. 항목의 이름은 사용자가 의미를 구분할 수 있도록 작성하고, 코드만 노출해야 하는 업무가 아니라면 설명 이름을 표시합니다.
선택 처리
선택이 바뀌면 OnEvent가 호출됩니다. 화면의 저장 버튼을 활성화하거나 선택 수를 표시하는 데 사용할 수 있습니다. 이벤트 안에서 매번 전체 데이터를 저장하기보다 업무 흐름에 맞춰 즉시 저장과 일괄 저장 중 하나를 정합니다.
선택 결과 조회
선택된 객체가 필요하면 구성요소가 제공하는 선택 항목 조회 기능을 사용하고, 값 문자열이 필요하면 GetSelectedValues()를 사용합니다. 구분된 문자열을 서버 계약에 그대로 넘기기보다 가능한 경우 값 배열로 변환해 명확한 API 계약을 사용합니다.
비활성 항목
업무 규칙상 선택할 수 없는 항목은 목록에서 제거하지 않고 비활성 상태와 이유를 함께 보여 줄 수 있습니다. 기존에 선택된 값이 현재는 사용할 수 없는 상태라면 사용자가 저장 전에 이를 인지할 수 있도록 별도 안내를 제공합니다.
사용 예
<RwOptionList @ref="optionList"
ItemsSource="notificationTargets"
DisplayMember="Name"
ValueMember="Id"
OnEvent="HandleSelectionChanged" />
서버에서 목록을 다시 조회한 경우 객체를 교체한 뒤 optionList.DataBind()를 호출합니다.
문제 확인
DisplayMember와ValueMember가 실제 항목 속성과 일치하는지 확인합니다.- 동일한 값이 여러 항목에 배정되지 않도록 합니다.
- 목록 재조회 후 기존 선택을 값 기준으로 복원합니다.
- 키보드와 화면 읽기 프로그램에서 항목 이름과 선택 상태를 확인할 수 있어야 합니다.
