Blog

C#에서 값이 Y, N인 값을 CheckBox 바인딩 하는법

2025-08-01

C# Blazor에서 "Y", "N" 값을 가진 필드를 CheckBox와 바인딩할 때 가장 표준적이고 깔끔한 방법입니다.

구조는 다음과 같습니다:

  1. 실제 모델 값은 문자열("Y"/"N")

  2. UI에서는 bool 타입 프로퍼티로 변환하여 사용

  3. getter/setter에서 변환 처리


코드 설명

csharp복사편집<TelerikCheckBox @bind-Value="isUnconfirmedAge"></TelerikCheckBox> 연령대 미확인

@code {
    // 실제 모델의 속성은 string 타입 ("Y" 또는 "N")
    CustomerModel modelCustomer = new CustomerModel();

    // 바인딩용 프로퍼티 (bool)
    bool isUnconfirmedAge
    {
        get => modelCustomer.IS_UNCONFIRMED_AGE == "Y";
        set => modelCustomer.IS_UNCONFIRMED_AGE = value ? "Y" : "N";
    }
}
  • getter: "Y"면 true, 그 외(또는 "N")면 false

  • setter: true면 "Y", false면 "N" 저장


실전에서 자주 쓰는 패턴

이 방식은 타겟 데이터가 "Y", "N" 또는 "T", "F" 등 문자열로 저장될 때 CheckBox, Switch 등 bool UI 컨트롤에 바인딩할 때 항상 씁니다.

참고: null 허용 시

만약 null이 올 수 있다면 (예: "Y", "N", null) 아래처럼 null 처리도 추가하세요:

csharp복사편집bool isUnconfirmedAge
{
    get => modelCustomer.IS_UNCONFIRMED_AGE == "Y";
    set => modelCustomer.IS_UNCONFIRMED_AGE = value ? "Y" : "N";
}

필요하다면 modelCustomer.IS_UNCONFIRMED_AGE ?? "N" 이런식으로도 가능.


여러개 사용 예시

csharp복사편집<TelerikCheckBox @bind-Value="isMan"></TelerikCheckBox> 남성
<TelerikCheckBox @bind-Value="isWoman"></TelerikCheckBox> 여성

@code {
    bool isMan
    {
        get => modelCustomer.GENDER == "M";
        set => modelCustomer.GENDER = value ? "M" : "F";
    }
    bool isWoman
    {
        get => modelCustomer.GENDER == "F";
        set => modelCustomer.GENDER = value ? "F" : "M";
    }
}

(※ 위처럼 성별 등 한 개만 선택 가능하면 Radio 사용 추천)


요약

  • getter/setter 패턴으로 bool <-> string 변환

  • UI에서는 bool 바인딩

  • Model에는 string 저장

질문하신 코드 그대로 사용하시면 됩니다!
추가적인 패턴, 자동화 방법, 확장성(예: 여러 필드) 등이 궁금하시면 말씀해 주세요.

인클루드웹 솔루션이 궁금하신가요?

건설관리, 프로젝트관리, 영업관리 솔루션 도입을 무료로 상담해 드립니다.