decimal
을 WPF TextBox에 바인딩하고 StringFormat
(이 경우 통화)을 지정하는 방법이 있습니까? 내가보기 모델의 속성이 일을 시도했지만,이 후 서식을 적용하려고으로 텍스트 상자의 편집이 좀 황당하게 모든 키 입력 :ReactiveUI를 사용하여 TextBox 바인딩 및 통화 서식 유지
public string Moneys
{
get
{
return string.Format("{0:C}", Model.Moneys);
}
set
{
if (decimal.TryParse(value, NumberStyles.Currency, null, out decimal decimalValue))
{
Model.Moneys = decimalValue;
}
}
}
나는 DataContext
및 사용 XAML 데이터를 설정하려 바인딩 대신. XAML : 뒤에
<TextBox Text="{Binding Path=Moneys, StringFormat=C0}" />
코드 :
this.WhenAnyValue(x => x.ViewModel.Model)
.Subscribe(x =>
{
DataContext = x;
});
그러나 내가 예상했던대로 변경되지 않습니다 {Binding}
DataContext
을 변경 한 후.
this.Bind
을 사용하고 StringFormat
을 지정하는 방법이 있습니까? 나를 위해, 그것은 DataContext
을 설정하는 경우에 이상적인 솔루션
UPDATE
것, 난 그냥에 할당해야한다는 실현 ViewModel
및 ViewModel.Model
변경, 서식 변경 내용을 반영 할 때 그것은해야한다. 여기 내 업데이트 XAML는 다음과 같습니다
<TextBox Text="{Binding Path=Model.Moneys, StringFormat=C0}" />
그러나, 나는 아직도 당신이 ReactiveUI
를 사용하여 뒤에 코드에서 StringFormat
을 설정할 수 있는지 알고 싶습니다.