【问题标题】:currency textbox on wpf c#wpf c#上的货币文本框
【发布时间】:2012-10-20 13:03:13
【问题描述】:

我不知道如何将我的文本框从字符串转换为货币。我已经在 STO、google 上进行了搜索。但不明白如何使用它。

假设我有一个文本框。 每当它运行程序时,我都会在文本框内键入。 如果我输入 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 还是新手。 知道怎么做吗?谢谢。

【问题讨论】:

    标签: c# .net wpf visual-studio-2010


    【解决方案1】:

    试试这个:-

      <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>
    

    【讨论】:

    • 嗨,谢谢你的回答。但我还是很困惑。我应该把你的 xaml 代码放在哪里?在我的文本框中?我在问题中添加了我的 xaml。谢谢。
    • 将样式放在资源部分。看看这是否有帮助:wpftutorial.net/Styles.html
    【解决方案2】:

    使用 StringFormat 依赖属性来格式化您希望字符串在 UI 上显示的方式。试试这个 -

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

    有关更多格式,请参阅 msdn 的此链接 - Custom Numeric Format

    【讨论】:

    • 嗨,感谢您的回答。我试试你的解决方案。但没有用。 :)
    • 您是否将值与某些属性绑定?
    • 奇怪它在示例中对我有用。我能想到的唯一问题是TextBox 文本没有正确绑定到您的属性nValue。查看输出窗口是否有任何绑定错误,也尝试将断点放在属性设置器上,看看它是否被命中。
    • 我可以知道你的邮件ID吗?
    • 这就是绑定中断的原因。很高兴它有帮助.. :)
    猜你喜欢
    • 2013-05-15
    • 1970-01-01
    • 2017-01-03
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    相关资源
    最近更新 更多