반응형
텍스트 상자를 부동값으로 바인딩합니다.도트/콤마를 입력할 수 없습니다.
예를 들어 텍스트 상자에 DOT 또는 COMA를 입력하려고 할 때1.02
또는83,33
텍스트 상자에서 이러한 값을 입력할 수 없습니다(입력이 빨간색으로 바뀝니다).텍스트 상자가 부동 속성에 바인딩되어 있습니다. 왜죠?
텍스트 상자를 부동 속성에 바인딩했습니다.Power
을 시행하는 학급의.INotifyPropertyChanged
.
private float _power;
public float Power
{
get { return _power; }
set
{
_power = value;
OnPropertyChanged("Power");
}
}
참말에서
<TextBox Name="txtPower" Height="23" TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
저는 지금 커스텀 유효성 검사가 전혀 없습니다.
십진법도 시도해봤지만 역시 작동하지 않습니다.끈에 대해서는 모든 것이 잘 작동합니다.
만약에.NET 4.5 이상, 4.5 이전 동작을 적용할 수 있습니다.
System.Windows.FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false;
Sebastian Lux의 블로그 보기:.NET 4.5에서는 더 이상 구분 문자(쉼표 또는 점)를 입력할 수 없습니다.UpdateSourceTrigger = PropertyChanged
결석으로마이크로소프트는 이를 의도했다고 말합니다.
바인딩에 StringFormat 정의를 추가해 보십시오.이와 같은 경우:
<TextBox Name="txtPower" Height="23"
TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,StringFormat=N2}"></TextBox>
텍스트 상자의 점 및 쉼표 문제를 소수점 또는 부동 소수점으로 고정
1- UpdateSourceTrigger = LostFocus
2- add string format StringFormat={}{0:#.##} to escape unneeded zeros
<TextBox Name="txtPower" Height="23"
TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay,
UpdateSourceTrigger=LostFocus ,StringFormat={}{0:#.##}}"></TextBox>
언급URL : https://stackoverflow.com/questions/14600842/bind-textbox-to-float-value-unable-to-input-dot-comma
반응형
'code' 카테고리의 다른 글
로컬에서 실행되는 도커 컨테이너에서 Azure Keyvault에 액세스하는 방법은 무엇입니까? (0) | 2023.05.08 |
---|---|
단위 테스트와 함께 애플리케이션 통찰력을 사용하시겠습니까? (0) | 2023.05.08 |
SQL 테이블의 레코드를 복사하면서 새 행의 고유 ID를 스왑 아웃하려면 어떻게 해야 합니까? (0) | 2023.05.08 |
일부 Microsoft 언어를 "Visual"이라고 부르는 이유는 무엇입니까? (Visual C#, Visual Basic)NET, 비주얼 C++) (0) | 2023.05.08 |
git: 'incential-cache'는 git 명령이 아닙니다. (0) | 2023.05.08 |