WPF 绑定(bind) - StringFormat - 不格式化

标签 wpf binding

我有一个工具提示,其值设置为:

Value="{Binding Path=DataItem.EquitySold, StringFormat=Reserved (Equity Share: \{0\}%)}"

工具栏显示为:

72



但我希望它是:

Reserved (Equity Share: 72%)



我的绑定(bind)有什么问题?

最佳答案

工具提示是一个内容控件,这意味着它实际上没有显示模型。这在@deccyclone 的较早答案中得到了证明,该答案将内容设置为 TextBlock。由于 TextBox 旨在显示文本,因此 StringFormat 绑定(bind)属性按宣传的方式工作。按钮是另一个例子。 (两者都派生自 ContentControl)

如果将工具提示的内容设置为字符串,则会显示该字符串,因为如果数据类型为字符串,则工具提示具有内置转换器。如果您想利用内置的字符串转换器,您需要使用 ContentStringFormat 属性设置格式。

<ToolTip
     Content="{Binding Path=Value}"
     ContentStringFormat="{}{0:F2} M"
/>

顺便说一句,何时使用 StringFormat 或 ContentStringFormat 的提示是控件提供的用于设置显示文本的属性。
文本属性 -> 使用 StringFormat
内容属性 -> 使用 ContentStringFormat

关于WPF 绑定(bind) - StringFormat - 不格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498649/

相关文章:

java - Hornetq 嵌入,找不到任何地址绑定(bind)

使用绑定(bind)的 WPF DataGrid 单元格背景

c# - 如何在 WPF MVVM 的列表中绑定(bind)变量?

c# - SQL 的替代方案作为客户端存储

c# - 如何按wpf中的后续数字对数组列表进行排序?

c# - MVVM/WPF - 当用户在文本框中输入时总是显示组合框下拉列表

c# - 最大化自己的窗口不会覆盖整个屏幕

javascript - knockout 绑定(bind)错误

.net - 在 ResourceDictionary 中使用 DataTrigger 定义样式,但在 View 中指定 DataTrigger 绑定(bind)路径

c# - 如何自定义绘制 GridSplitter