【发布时间】:2013-01-24 00:56:46
【问题描述】:
请有人告诉我如何从代码隐藏中获取像“0.0”这样的双精度值,如下所示:
Binding b = new Binding(DoubleValue);
b.StringFormat = "????";
在 xaml 中它就像“0.0”一样工作......
【问题讨论】:
标签: wpf binding string-formatting
请有人告诉我如何从代码隐藏中获取像“0.0”这样的双精度值,如下所示:
Binding b = new Binding(DoubleValue);
b.StringFormat = "????";
在 xaml 中它就像“0.0”一样工作......
【问题讨论】:
标签: wpf binding string-formatting
这个怎么样?
b.StringFormat = "{0:F1}";
请参阅 StringFormat 以及 Standard Numeric Format Strings 和 Custom Numeric Format Strings 的文档。
编辑:只是为了明确如何在代码中创建和分配绑定(到名为 textBlock 的虚构 TextBlock 的 Text 属性):
public class ViewModel
{
public double DoubleValue { get; set; }
}
...
var viewModel = new ViewModel
{
DoubleValue = Math.PI
};
var binding = new Binding
{
Source = viewModel,
Path = new PropertyPath("DoubleValue"),
StringFormat = "{0:F1}"
};
textBlock.SetBinding(TextBlock.TextProperty, binding);
或者:
var binding = new Binding
{
Path = new PropertyPath("DoubleValue"),
StringFormat = "{0:F1}"
};
textBlock.DataContext = viewModel;
textBlock.SetBinding(TextBlock.TextProperty, binding);
【讨论】:
DoubleValue 到底是什么?
float 更改为 string 来重现“{0:F1}asdas”的 StringFormat 并创建“12.12321asdas”的输出。你的绑定在某种程度上是错误的,这就是我强烈建议发布更多代码的原因。不是全部,而是相关部分。