첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
0.15MB

▶ NumericValidationBehavior.cs

namespace TestProject;

/// <summary>
/// 숫자 검증 동작
/// </summary>
public class NumericValidationBehavior : Behavior<Entry>
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Protected

    #region 부착시 처리하기 - OnAttachedTo(entry)

    /// <summary>
    /// 부착시 처리하기
    /// </summary>
    /// <param name="entry">엔트리</param>
    protected override void OnAttachedTo(Entry entry)
    {
        entry.TextChanged += entry_TextChanged;

        base.OnAttachedTo(entry);
    }

    #endregion
    #region 탈착시 처리하기 - OnDetachingFrom(entry)

    /// <summary>
    /// 탈착시 처리하기
    /// </summary>
    /// <param name="entry">엔트리</param>
    protected override void OnDetachingFrom(Entry entry)
    {
        entry.TextChanged -= entry_TextChanged;

        base.OnDetachingFrom(entry);
    }

    #endregion

    ////////////////////////////////////////////////////////////////////////////////////////// Private

    #region 엔트리 텍스트 변경시 처리하기 - entry_TextChanged(sender, e)

    /// <summary>
    /// 엔트리 텍스트 변경시 처리하기
    /// </summary>
    /// <param name="sender">이벤트 발생자</param>
    /// <param name="e">이벤트 인자</param>
    private void entry_TextChanged(object sender, TextChangedEventArgs e)
    {
        double result;

        bool isValid = double.TryParse(e.NewTextValue, out result);

        ((Entry)sender).TextColor = isValid ? Colors.Black : Colors.Red;
    }

    #endregion
}

 

728x90

 

▶ MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="TestProject.MainPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:TestProject">
    <Entry
        HorizontalOptions="Center"
        VerticalOptions="Center"
        WidthRequest="200"
        Placeholder="실수 값을 입력해 주시기 바랍니다.">
        <Entry.Behaviors>
            <local:NumericValidationBehavior />
        </Entry.Behaviors>
    </Entry>
</ContentPage>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요