WPF TextBox StringFormat 不适用于 PropertyChanged

发布于 2024-09-07 23:51:10 字数 412 浏览 4 评论 0原文

我有一个问题。我需要在所有文本框中都有双格式值

当您在其中输入内容时,失去焦点后它将被格式化。

<TextBox Text="{Binding ABC, StringFormat='{}{0:N}'}"  />

当您添加带有 propertychanged 的​​ UpdateSourceTrigger 时,就会出现问题。那么它就永远不会被格式化。

<TextBox Text="{Binding ABC, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0:N}'}"  />

这是为什么?有什么办法可以解决吗? (最好是 XAML)

I have a problem. I need to have double formatted values in all TextBoxes.

When you type something into this, after lost focus it will be formatted.

<TextBox Text="{Binding ABC, StringFormat='{}{0:N}'}"  />

Problem arises when you add this UpdateSourceTrigger with propertychanged. Then it will never be formatted.

<TextBox Text="{Binding ABC, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0:N}'}"  />

Why is that? Is there any way how to solve that? (in XAML preferably)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瀞厅☆埖开 2024-09-14 23:51:11

试试这个

<TextBox x:Name="test" Text="{Binding MyName, UpdateSourceTrigger=Explicit,StringFormat='{}{0:N}'}" TextChanged="test_TextChanged" Width="100" Height="30" />


 private void test_TextChanged(object sender, TextChangedEventArgs e)
    {
        BindingExpression exp = test.GetBindingExpression(TextBox.TextProperty);
        exp.UpdateSource(); 
    }

Try this

<TextBox x:Name="test" Text="{Binding MyName, UpdateSourceTrigger=Explicit,StringFormat='{}{0:N}'}" TextChanged="test_TextChanged" Width="100" Height="30" />


 private void test_TextChanged(object sender, TextChangedEventArgs e)
    {
        BindingExpression exp = test.GetBindingExpression(TextBox.TextProperty);
        exp.UpdateSource(); 
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文