250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MSSQL
- mssql table 용량
- Gradle JDK Path
- MS-SQL
- c# 강의
- delete truncate 차이
- OPC UA
- lock
- Java 버전 여러개 사용
- SCM
- OPC Write
- Gradle Jar
- kafka
- OPC DA
- Gradle 빌드 오류
- CPU 사용량
- springboot Gradle
- ssh 접속 로그
- kafka listener
- Jar 경로
- OPC UA Write
- table용량
- c#
- Xamarin
- JOIN DBMS별 차이점
- OPC UA Client Write
- ssh 접속 실패 로그
- 스마트공장
- ssh log
- OPC
Archives
- Today
- Total
IT’s Ha
[Xamarin] Entry 숫자만 적용 본문
728x90
반응형
안녕하세요. 오늘은 Xamarin Entry에 숫자만 적용하는 방법을 설명 드리겠습니다.
Entry는 기본 텍스트 박스라고 생각하시면 됩니다.
반응형
1. Entry에 키보드 숫자만 입력가능하게 설정
<Entry Text="0"
Keyboard="Numeric"
Placeholder="변경수량"
PlaceholderColor="LightGray">
<Entry.Behaviors>
<mv:NumericValidationBehavior/>
</Entry.Behaviors>
</Entry>
받을 수 있는 키패드 타입을 숫자로 지정합니다.
2. NumericBehavior 클레스 생성
public class NumericBehavior : Behavior<Entry>
{
protected override void OnAttachedTo(Entry entry)
{
entry.TextChanged += OnEntryTextChanged;
base.OnAttachedTo(entry);
}
protected override void OnDetachingFrom(Entry entry)
{
entry.TextChanged -= OnEntryTextChanged;
base.OnDetachingFrom(entry);
}
private static void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
if (string.IsNullOrEmpty(e.NewTextValue))
{
((Entry)sender).Text = 0.ToString();
return;
}
double _;
if (!double.TryParse(e.NewTextValue, out _))
((Entry)sender).Text = e.OldTextValue;
}
}
3. 해석
protected override void OnAttachedTo(Entry entry)
{
entry.TextChanged += OnEntryTextChanged;
base.OnAttachedTo(entry);
}
protected override void OnDetachingFrom(Entry entry)
{
entry.TextChanged -= OnEntryTextChanged;
base.OnDetachingFrom(entry);
}
1) OnAttachedTo와 OnDeatchingForm 메서드는 바인딩과 관려되어 있는 함수입니다. 바인딩시 OnEntryTextChanged함수를 사용하도록하고, 바인딩 해제시 OnEntryTextChanged를 제거하는 함수입니다.
private static void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
if (string.IsNullOrEmpty(e.NewTextValue))
{
((Entry)sender).Text = 0.ToString();
return;
}
double _;
if (!double.TryParse(e.NewTextValue, out _))
((Entry)sender).Text = e.OldTextValue;
}
2)Entry Text값이 null 또는 공백에서 0으로 처리하는 내용입니다. 아래의 내용은 double 처리를 하기위하여 구현하였습니다.
728x90
반응형
'.NET > Xamarin' 카테고리의 다른 글
[Xamarin] Xamarin.Forms MVVM 디자인 패턴 적용 (0) | 2023.01.16 |
---|
Comments