2012-10-20 6 views
4

나는 문자열에서 통화로 내 텍스트 상자를 만드는 방법을 모른다. 나는 이미 STO, google에서 검색을 수행합니다. 하지만 그것을 사용하는 방법을 이해하지 않습니다.wpf C에서 통화 텍스트 상자 #

하나의 텍스트 상자가 있다고 가정 해 보겠습니다. 프로그램을 실행할 때마다 텍스트 상자 안에 입력합니다. 1000을 입력하면 텍스트 상자가 자동으로 1,000으로 변경됩니다. 내가 10000 키를 입력하면 내 텍스트 상자가 10,000처럼 보입니다. 하지만 100을 입력 할 때마다 내 텍스트 상자는 여전히 100입니다.

여기 내 텍스트 상자 xaml입니다.

<TextBox Height="25" HorizontalAlignment="Left" Margin="126,223,0,0" Name="txtPrice" 
        VerticalAlignment="Top" Width="140" PreviewTextInput="txtPrice_PreviewTextInput" /> 

vb.net을 사용하기 전에이 작업을 수행했지만 지금은 wpf를 사용하고 있습니다. 여전히 wpf에 새로운. 그 아이디어는 어떤가? 감사.

답변

4

는 문자열이 UI에 표시 할 방법을 포맷 할 StringFormat 종속성 속성을 사용합니다. 이 시도 - 더 형식에 대한

<TextBox Text="{Binding YourBinding, StringFormat='##,#', 
          UpdateSourceTrigger=PropertyChanged}"/> 

은 MSDN에서이 링크를 참조 - Custom Numeric Format

+0

안녕하세요, 답변 해 주셔서 감사합니다. 나는 당신의 해결책을 시도합니다. 그러나 작동하지 않았다. :) –

+0

값을 일부 속성으로 바인딩 했습니까? –

+0

또한 텍스트 자체를 입력하는 동안 텍스트를 변환하려면'UpdateSourceTrigger'를'PropertyChanged'로 설정하십시오. 편집 된 답변을 참조하십시오. –

5

이 시도 : -

<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="Text" Value="{SomeValue, StringFormat=C}" /> 
    <Style.Triggers> 
    <Trigger Property="IsKeyboardFocusWithin" Value="True"> 
     <Setter Property="Text" Value="{SomeValue, UpdateSourceTrigger=PropertyChanged}" /> 
    </Trigger> 
    </Style.Triggers> 
</Style> 
+0

안녕하세요, 당신의 대답을 thakns. 그러나 나는 아직도 혼란 스럽다. xaml 코드는 어디에 두어야합니까? 내 텍스트 상자 안에? 질문에 xaml을 추가했습니다. 감사. –

+0

리소스 섹션에 스타일을 넣으십시오. 도움이되는지 확인하려면 다음 페이지를 참조하십시오. http://wpftutorial.net/Styles.html – Gary