WPF 中的两种方式百分比格式绑定

2023-11-25

我有这个文本框:

<TextBox Text="{Binding Path=TaxFactor, StringFormat=P}" />

它正确显示0.05 as 5%,但是回去是不行的。当我输入百分比时,由于百分比符号而导致失败。如果我尝试只写一个数字,比如5, I get 500%反而。我必须写0.05让它发挥作用。

我是否必须编写一个自定义转换器才能恢复我的百分比?如果是这样,我如何解决特定于区域设置的百分比格式?


您需要编写一个自定义转换器。注意:这里假设值存储在 0 到 100 的范围内,而不是 0 到 1。

public object Convert(object value, Type targetType, object parameter,
                      System.Globalization.CultureInfo culture)
{
    if (string.IsNullOrEmpty(value.ToString())) return 0;

    if (value.GetType() == typeof(double)) return (double)value / 100;

    if (value.GetType() == typeof(decimal)) return (decimal)value / 100;    

    return value;
}

public object ConvertBack(object value, Type targetType, object parameter,
                          System.Globalization.CultureInfo culture)
{
    if (string.IsNullOrEmpty(value.ToString())) return 0;

    var trimmedValue = value.ToString().TrimEnd(new char[] { '%' });

    if (targetType == typeof(double))
    {
        double result;
        if (double.TryParse(trimmedValue, out result))
            return result;
        else
            return value;
    }

    if (targetType == typeof(decimal))
    {
        decimal result;
        if (decimal.TryParse(trimmedValue, out result))
            return result;
        else
            return value;
    }
    return value;
}

像这样称呼它:

<TextBox Text="{Binding Path=TaxFactor, Mode=TwoWay, StringFormat=P, 
         Converter={StaticResource percentStringFormatConverter} />

这是来自一些 Silverlight 代码,但应该适用于 WPF

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 中的两种方式百分比格式绑定 的相关文章

  • 使用 HttpClient 从 webapi 消费 xml

    我使用 WebClient 从 Restfull 服务 net web api 获取 Xml 对象 一切都运行良好 using WebClient client new WebClient client Encoding UTF8Encod
  • WPF 自定义控件 - ItemsControl 模板未应用

    我正在构建一个派生自 TabControl 的自定义 WPF 控件 在 ControlTemplate 中 我使用 ItemsControl 来显示从模板绑定的列表 FileMenuItem 类型的可观察集合 在程序执行期间 我在输出窗口中
  • 160 位 SHA1 哈希值的前 32 位是否可以替代 CRC32 哈希值?

    我正在开发一个 NET 3 5 项目 我需要一个 32 位哈希值 NET 加密类中似乎没有任何方法返回 32 位哈希 MD5 是 128 位 SHA1 是 160 位等 我实现了一个 CRC32 类 但我发现现有的 SHA1 和 MD5 哈
  • 如何在WebBrowser控件中注入Javascript?

    我试过这个 string newScript textBox1 Text HtmlElement head browserCtrl Document GetElementsByTagName head 0 HtmlElement scrip
  • WCF获取证书编码值

    我在 WCF 服务中使用证书 因此在 web Config 中有一个编码值
  • 更改 WPF 应用程序清单?

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • WPF PRISM 事件订阅不会消亡

    我有一个 PRISM RegionManager 其中有几个区域 顶部的功能区区域和其下方用于我的视图的主要内容区域 相当基本 该应用程序以主要内容区域中的 主页 视图开始 当我单击功能区上的按钮时 我将第二个视图注入内容区域并在区域管理器
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • *.tlb 文件在运行时使用过吗?

    我正在开发一个通过 COM 互操作公开一些 NET API 的产品 作为构建的一部分 我们为所有此类程序集生成 tlb 文件 并将它们作为单独 SDK 包的一部分提供 我们的客户可以在我们的产品之上安装 SDK 并创建使用我们的 COM A
  • 在 C# 应用程序中使用 LinkedIn API

    我正在构建一个小型 Windows 窗体应用程序 并且想要从公司搜索 API 访问信息 我什至不想在个人资料中写入任何内容 我已经打开一个网络浏览器并要求我的用户在我的应用程序中输入一些验证码 这真是令人难以置信的令人沮丧 有大量针对 Py
  • WPF Window 类的 IDisposable 成员

    当我将 IDisposable 类成员添加到 Windows 窗体 Form 类时 我将处置代码添加到 Form 的 Dispose 方法中 当我将 IDisposable 类成员添加到 WPF Window 类 不是 IDisposabl
  • 从 GUID 获取类型

    由于种种原因 我需要在C 中实现类型缓存机制 幸运的是 CLR 提供了Type GUID来唯一标识一个类型 不幸的是 我找不到任何方法来根据此 GUID 查找类型 有Type GetTypeFromCLSID 但根据我对文档 和实验 的理解
  • 为什么必须在 C# 中 Close() 文件?

    我知道这可能看起来很愚蠢 但为什么以下代码仅在我 Close 文件时才有效 如果我不关闭文件 则不会写入整个流 Steps 在表单加载时运行此代码 显示后使用鼠标关闭表单 程序终止 当文件对象超出范围时 不应该自动刷新或关闭吗 我是 C 新
  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • WindowsFormsHost ZOrder

    看起来 WindowsFormsHost 控件被设置为显示在顶部 有没有办法更改其 z 顺序 以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件之上可见 不幸的是 不能 由于 winformshost 合成到 W
  • WPF:绑定到 ControlTemplate 中的命令

    我正在尝试向自定义 ListView MyListView 添加一个按钮 该按钮会触发 MyListView 中定义的命令 MyCustomCommand 我通过应用 ControlTemplate 添加了按钮 和标题文本 问题是我还没有找
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan

随机推荐

  • 如果内部的总工作量相同,则将一个 for 循环拆分为多个 for 循环的开销是多少? [复制]

    这个问题在这里已经有答案了 拆分的开销是多少for 像这样循环 int i for i 0 i lt exchanges i some code some more code even more code 分成多个for 像这样循环 int
  • 如何根据多个条件并使用 linq 从通用列表中删除项目

    我有两个列表 一个包含 url 另一个包含所有 MIME 文件扩展名 我想从第一个列表中删除所有指向此类文件的 url 示例代码 List
  • 如何制作自定义分享按钮

    我一直想在我的应用程序中添加 Facebook 共享按钮 但我遇到的问题是它们看起来都不同 我看到类似的网站this具有定制设计的共享按钮 有谁知道一个好的教程 或者有任何关于如何解决这个问题的指示 在 Facebook 上分享内容非常简单
  • html2canvas可以在页面中渲染svg吗?

    我正在使用 html2canvas 创建包含 SVG 的 HTML 页面的 屏幕截图 除了元素之外 一切看起来都不错 我知道应该可以在 Canvas 中渲染 SVG PhantomJS fabric js 和 CanVG 可以做到这一点 这
  • 如何调整文本(字体)大小以适合 UISegmentedControl 的 UISegment?

    有什么方法可以减小可以适合单段的字体大小UISegmentedControl 尝试过很多类似的事情 UILabel appearanceWhenContainedIn UISegmentedControl class nil adjusts
  • 文本上透明删除线

    我需要实施一个使用 CSS 在文本上添加透明删除线所以我不必更换 h1 标记为 img 标签 我已经设法用 CSS 在文本上实现换行 但无法使其透明 想要的效果 我拥有的 body background url http lorempixe
  • OpenCV 将 Canny 边缘转换为轮廓

    我有一个 OpenCV 应用程序 由办公室内部的网络摄像头流 很多细节 提供 我必须在其中找到人工标记 标记是白色背景上的黑色方块 我使用 Canny 查找边缘 使用 cvFindContours 进行轮廓绘制 然后使用 approxPol
  • Swift 3 中的dispatch_once 去哪儿了?

    好的 所以我发现了新的Swifty 调度 API在 Xcode 8 中 我使用起来很有趣DispatchQueue main async 我一直在浏览DispatchXcode 中的模块来查找所有新的 API 但我也用dispatch on
  • 如何以比使用 strip_tags 函数更安全的方式去除标签?

    当字符串包含 小于 和 大于 符号时 我在使用 strip tags PHP 函数时遇到一些问题 例如 If I do strip tags span some text lt 5ml and then gt 10ml some text
  • 有没有一种方法可以使用宏来检测是否包含标准标头?

    我想做一个相当于boost swap在我的环境中 可以或不可以包含标准标头 取决于项目许可和其他内容 我想让部分代码受到警卫检测器的保护 让我们考虑一个编译单元 项目特定的 前述的潜力包括 include
  • 如何从Python命令行接收正则表达式

    我想从命令行接收像 t 制表符 这样的分隔符 并用它来解析文本文件 如果我把 delimiter sys argv 1 在代码中 然后从命令行输入 python mycode py t 分隔符是 t 即 Python 会按原样保留输入字符串
  • python中接受所有泰文字符和英文字母的正则表达式

    我需要对泰语文本文档进行矢量化 例如 Bag of Words doc2vec 首先 我想检查每个文档 省略除泰语字符和英语单词之外的所有内容 例如 没有标点符号 没有数字 除了撇号之外没有其他特殊字符 对于英文文档 我使用这个正则表达式
  • C const 的默认类型是什么?

    我正在编写一些 C 代码 并注意到我认为是错误的地方 但事实并非如此 我有以下类型声明语句 const fee 然而 它最初没有被捕获 因为编译器和我没有捕获它 所以我很好奇为什么 C 允许这样做以及默认类型是什么 只有原始版本的 C 语言
  • 字节序是否只影响数字的内存布局,而不影响字符串?

    是否真的 无论架构是大端还是小端 只是数字的内存布局不同 字符串的内存布局是相同的 如果您有一个简单的 8 位字符表示 例如扩展 ASCII 那么不会 字节顺序不会影响布局 因为每个字符都是一个字节 如果您有多字节表示形式 例如 UTF 1
  • 谷歌地图两个圆的交点

    有没有一种简单的方法可以获得lat lng两个的交点 如果有 circles in 谷歌地图 API V3 或者我应该去hard way EDIT 在我的问题中 圆总是具有相同的半径 这样可以使解决方案更容易 是的 对于相等的圆 可以阐述相
  • 使用 Firebase 身份验证的 SwiftUI

    我正在尝试通过电子邮件 密码登录使用 SwiftUI Firebase 身份验证 我的问题是 有什么方法可以在用户创建帐户时将个人资料信息附加到用户的身份验证信息中 或者我必须将 Firebase Auth 与 Firestore 或 Fi
  • 什么时候应该封装泛型类型?

    我见过很多人建议您应该使用更接近您的领域的类来封装泛型类型 例如 Steve 和 Nat 建议在以测试为指导不断发展面向对象的软件 that 我们的经验法则是 我们尝试限制使用泛型传递类型 特别是当应用于集合时 我们将其视为一种重复形式 这
  • Swift - 将重载函数分配给变量

    我收到编译时错误 指出 myFunc 引用不明确 func f s String gt String return version 1 s func f sourceString s String gt String return vers
  • Mod 安全响应/请求正文大小?

    如何在 Mod Security 中获取响应 请求正文的大小 我不断收到此错误 例如 Mon Sep 17 23 34 38 2012 error client 192 168 1 1 ModSecurity Output filter R
  • WPF 中的两种方式百分比格式绑定

    我有这个文本框