Xamarin.ios 확인란Xamarin.Forms CheckBox

샘플 다운로드 샘플 다운로드Download Sample Download the sample

Xamarin.ios CheckBox은 선택 하거나 비워 둘 수 있는 단추의 유형입니다.The Xamarin.Forms CheckBox is a type of button that can either be checked or empty. 확인란을 선택 하면 설정 된 것으로 간주 됩니다.When a checkbox is checked, it's considered to be on. 확인란이 비어 있으면 해제 된 것으로 간주 됩니다.When a checkbox is empty, it's considered to be off.

CheckBoxCheckBox를 선택 했는지 여부를 나타내는 IsChecked 라는 bool 속성을 정의 합니다.CheckBox defines a bool property named IsChecked, which indicates whether the CheckBox is checked. 이 속성은 BindableProperty 개체 에서도 지원 됩니다. 즉, 스타일을 지정할 수 있으며 데이터 바인딩의 대상이 될 수 있습니다.This property is also backed by a BindableProperty object, which means that it can be styled, and be the target of data bindings.

참고

바인딩 가능한 IsChecked 속성은 BindingMode.TwoWay의 기본 바인딩 모드입니다.The IsChecked bindable property has a default binding mode of BindingMode.TwoWay.

CheckBox는 사용자 조작을 통해 또는 응용 프로그램에서 IsChecked 속성을 설정 하는 경우 IsChecked 속성이 변경 될 때 발생 하는 CheckedChanged 이벤트를 정의 합니다.CheckBox defines a CheckedChanged event that's fired when the IsChecked property changes, either through user manipulation or when an application sets the IsChecked property. @No__t_1 이벤트와 함께 제공 되는 CheckedChangedEventArgs 개체에는 bool 형식의 Value 이라는 단일 속성이 있습니다.The CheckedChangedEventArgs object that accompanies the CheckedChanged event has a single property named Value, of type bool. 이벤트가 발생 하면 Value 속성의 값이 IsChecked 속성의 새 값으로 설정 됩니다.When the event is fired, the value of the Value property is set to the new value of the IsChecked property.

확인란 만들기Create a CheckBox

다음 예제에서는 XAML로 CheckBox를 인스턴스화하는 방법을 보여 줍니다.The following example shows how to instantiate a CheckBox in XAML:

<CheckBox />

이 XAML은 다음 스크린샷에 표시 됩니다.This XAML results in the appearance shown in the following screenshots:

IOS 및 Android에 대 한 빈 확인란의 스크린샷Screenshot of an empty Checkbox, on iOS and Android

기본적으로 CheckBox는 비어 있습니다.By default, the CheckBox is empty. @No__t_0는 사용자 조작을 사용 하 여 확인 하거나 IsChecked 속성을 true로 설정 하 여 확인할 수 있습니다.The CheckBox can be checked by user manipulation, or by setting the IsChecked property to true:

<CheckBox IsChecked="true" />

이 XAML은 다음 스크린샷에 표시 됩니다.This XAML results in the appearance shown in the following screenshots:

IOS 및 Android에서 선택 된 확인란의 스크린샷Screenshot of a checked Checkbox, on iOS and Android

또는 코드에서 CheckBox를 만들 수 있습니다.Alternatively, a CheckBox can be created in code:

CheckBox checkBox = new CheckBox { IsChecked = true };

CheckBox 변경 상태에 응답Respond to a CheckBox changing state

사용자 조작을 통해 또는 응용 프로그램에서 IsChecked 속성을 설정 하 여 IsChecked 속성이 변경 되 면 CheckedChanged 이벤트가 발생 합니다.When the IsChecked property changes, either through user manipulation or when an application sets the IsChecked property, the CheckedChanged event fires. 이 이벤트에 대 한 이벤트 처리기를 등록 하 여 변경에 응답할 수 있습니다.An event handler for this event can be registered to respond to the change:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

코드 숨겨진 파일에는 CheckedChanged 이벤트에 대 한 처리기가 포함 되어 있습니다.The code-behind file contains the handler for the CheckedChanged event:

void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
    // Perform required operation after examining e.Value
}

@No__t_0 인수는이 이벤트를 담당 하는 CheckBox입니다.The sender argument is the CheckBox responsible for this event. 이를 사용 하 여 CheckBox 개체에 액세스 하거나 동일한 CheckedChanged 이벤트를 공유 하는 여러 CheckBox 개체를 구분할 수 있습니다.You can use this to access the CheckBox object, or to distinguish between multiple CheckBox objects sharing the same CheckedChanged event.

또는 CheckedChanged 이벤트에 대 한 이벤트 처리기를 코드에 등록할 수 있습니다.Alternatively, an event handler for the CheckedChanged event can be registered in code:

CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
    // Perform required operation after examining e.Value
};

데이터 바인딩 확인란Data bind a CheckBox

데이터 바인딩 및 트리거를 사용 하 여 확인 되거나 비어 있는 CheckBox에 응답 하 여 CheckedChanged 이벤트 처리기를 제거할 수 있습니다.The CheckedChanged event handler can be eliminated by using data binding and triggers to respond to a CheckBox being checked or empty:

<CheckBox x:Name="checkBox" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
    <Label.Triggers>
        <DataTrigger TargetType="Label"
                     Binding="{Binding Source={x:Reference checkBox}, Path=IsChecked}"
                     Value="true">
            <Setter Property="FontAttributes"
                    Value="Italic, Bold" />
            <Setter Property="FontSize"
                    Value="Large" />
        </DataTrigger>
    </Label.Triggers>
</Label>

이 예에서 Label 는 데이터 트리거의 바인딩 식을 사용 하 여 CheckBoxIsChecked 속성을 모니터링 합니다.In this example, the Label uses a binding expression in a data trigger to monitor the IsChecked property of the CheckBox. 이 속성이 true 되 면 LabelFontAttributesFontSize 속성이 변경 됩니다.When this property becomes true, the FontAttributes and FontSize properties of the Label change. @No__t_0 속성이 false로 반환 되는 경우 LabelFontAttributesFontSize 속성은 초기 상태로 다시 설정 됩니다.When the IsChecked property returns to false, the FontAttributes and FontSize properties of the Label are reset to their initial state.

다음 스크린샷에서 iOS 스크린샷은 CheckBox 비어 있을 때 Label 서식 지정을 보여 주지만, Android 스크린 샷에서는 CheckBox 확인 될 때 Label 서식 지정을 보여 줍니다.In the following screenshots, the iOS screenshot shows the Label formatting when the CheckBox is empty, while the Android screenshot shows the Label formatting when the CheckBox is checked:

IOS 및 Android에 대 한 데이터 바인딩된 확인란의 스크린샷Screenshot of a data bound CheckBox, on iOS and Android

트리거에 대 한 자세한 내용은 Xamarin.ios 트리거를 참조 하세요.For more information about triggers, see Xamarin.Forms Triggers.

확인란 사용 안 함Disable a Checkbox

경우에 따라 응용 프로그램은 검사 중인 CheckBox 올바른 작업이 아닌 상태를 입력 합니다.Sometimes an application enters a state where a CheckBox being checked is not a valid operation. 이러한 경우 IsEnabled 속성을 false로 설정 하 여 CheckBox를 사용 하지 않도록 설정할 수 있습니다.In such cases, the CheckBox can be disabled by setting its IsEnabled property to false.

확인란 모양CheckBox appearance

@No__t_0는 View 클래스에서 상속 하는 속성 외에도 해당 색을 Color로 설정 하는 Color 속성도 정의 CheckBox.In addition to the properties that CheckBox inherits from the View class, CheckBox also defines a Color property that sets its color to a Color:

<CheckBox Color="Red" />

다음 스크린샷은 일련의 확인 된 CheckBox 개체를 보여 줍니다. 각 개체의 Color 속성은 다른 Color설정 됩니다.The following screenshots show a series of checked CheckBox objects, where each object has its Color property set to a different Color:

IOS 및 Android에서 색이 지정 된 확인란의 스크린샷Screenshot of colored CheckBoxes, on iOS and Android

CheckBox 시각적 상태CheckBox visual states

CheckBox에는 CheckBox의 시각적 변경을 시작 하는 데 사용할 수 있는 IsChecked VisualState 있습니다.CheckBox has an IsChecked VisualState that can be used to initiate a visual change to the CheckBox when it becomes checked.

다음 XAML 예제에서는 IsChecked 상태에 대 한 시각적 상태를 정의 하는 방법을 보여 줍니다.The following XAML example shows how to define a visual state for the IsChecked state:

<CheckBox ...>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
            <VisualState x:Name="Normal">
                <VisualState.Setters>
                    <Setter Property="Color"
                            Value="Red" />
                </VisualState.Setters>
            </VisualState>

            <VisualState x:Name="IsChecked">
                <VisualState.Setters>
                    <Setter Property="Color"
                            Value="Green" />
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</CheckBox>

이 예에서는 IsChecked VisualState CheckBox을 선택 하면 해당 Color 속성이 녹색으로 설정 되도록 지정 합니다.In this example, the IsChecked VisualState specifies that when the CheckBox is checked, its Color property will be set to green. @No__t_0 VisualStateCheckBox 정상 상태 이면 해당 Color 속성이 red로 설정 되도록 지정 합니다.The Normal VisualState specifies that when the CheckBox is in a normal state, its Color property will be set to red. 따라서 CheckBox 비어 있으면 빨간색이 고 확인 되 면 녹색이 되는 것이 전반적인 효과가 있습니다.Therefore, the overall effect is that the CheckBox is red when it's empty, and green when it's checked.

시각적 상태에 대 한 자세한 내용은 Xamarin. Forms 시각적 상태 관리자를 참조 하세요.For more information about visual states, see Xamarin.Forms Visual State Manager.