RxAutocomplete
RxAutocomplete는 입력 검색과 태그 선택을 결합한 단일·다중 선택 구성요소입니다. 사용자, 수신자와 분류 태그처럼 검색하면서 여러 값을 추가할 때 사용합니다.
검색형 입력 구성
ItemsSource를 필터링해 후보를 표시하고 ValueField로 선택을 식별합니다. Multiple과 Single 선택 모드, 사용자 직접 입력, 구분자 입력과 최대 선택 개수를 지원합니다.
자동완성이 필요한 경우
검색 가능한 여러 항목을 태그 형태로 선택하거나 목록에 없는 이메일 주소를 허용할 때 적합합니다. 하나의 고정 코드만 고르는 경우 RwComboBox가 더 단순합니다.
검색과 결과 설정
| 파라미터 | 용도 |
|---|---|
| ItemsSource | 검색 후보 목록입니다. |
| ItemSource / Path | 선택 결과를 연결할 모델입니다. |
| ValueField | 중복을 판정할 고유 속성입니다. |
| Mode | Single 또는 Multiple 선택 방식을 정합니다. |
| MaxCount | 다중 선택 최대 개수입니다. |
| FilterFields | 검색에 포함할 추가 속성입니다. |
| AllowCustomInput | 목록에 없는 직접 입력을 허용합니다. |
| OnSelected / OnDeselected | 항목 추가와 제거 이벤트입니다. |
검색 요청 흐름
- 후보 목록과 ValueField를 준비합니다.
- 단일 또는 다중 Mode를 선택합니다.
- 검색용 표시 템플릿과 FilterFields를 지정합니다.
- 직접 입력 허용 여부와 구분자를 결정합니다.
- 선택·제거 이벤트에서 상위 모델을 갱신합니다.
결과 선택과 값 확정
OnInputChange는 검색어가 바뀔 때 호출되고 OnSelected와 OnDeselected는 태그 변경을 전달합니다. ValueChanged는 최종 선택 상태를 확인하는 용도로 사용합니다. 원격 검색은 입력 이벤트에 debounce를 적용합니다.
키보드와 결과 안내
입력 목적을 설명하는 Placeholder와 접근 가능한 이름을 제공합니다. 선택 태그의 제거 단추는 항목명을 포함한 이름을 가져야 하며 키보드로 제거할 수 있어야 합니다.
서버 검색과 요청 순서
AllowCustomInput을 켜면 사용자 입력을 별도로 검증해야 합니다. MaxCount에 도달했을 때 이유를 안내하고, ValueField가 비어 있는 항목은 중복 선택 판정에 사용하지 않습니다.
자동완성 점검
- 한글 검색과 키보드 선택을 확인합니다.
- 중복 항목이 추가되지 않는지 확인합니다.
- 직접 입력값의 검증과 최대 개수를 확인합니다.
