我可以将StringFormat
内的Binding
绑定到另一个Binding
吗?
Text="{Binding DeficitDollars, StringFormat=\{0:E6\}}"
Text="{Binding GNP, StringFormat={Binding LocalCurrencyFormat}}"
答案 0 :(得分:1)
您无法Binding
使用StringFormat
。正如例外情况告诉您是否尝试过:
A'
Binding
'只能在aDependencyProperty
上设置DependencyObject
StringFormat
不是DependencyProperty
且Binding
不是DependencyObject
。
你可以做这两件事。
您可以在App.xaml
的{{1}}中定义不同的字符串格式,以便在整个应用程序中可以访问这些格式:
Resources
<system:String x:Key="LocalCurrencyFormat">{0:C}</system:String>
是system
然后你可以这样做:
xmlns:system="clr-namespace:System;assembly=mscorlib"
您可以拥有一个包含所有不同字符串格式的类:
<TextBlock Text="{Binding MyDouble, StringFormat={StaticResource LocalCurrencyFormat}}" />
并以public static class StringFormats
{
public static string LocalCurrencyFormat
{
get { return "{0:C}"; }
}
}
方式使用它:
Binding
答案 1 :(得分:0)
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Width="500" Height="500">
<Window.Resources>
<sys:String x:Key="LocalCurrencyFormat">Total: {0:C}</sys:String>
</Window.Resources>
<StackPanel>
<TextBlock Text="{Binding DeficitDollars, StringFormat=\{0:E6\}}"></TextBlock>
<TextBlock Text="{Binding Path=GNP, StringFormat={StaticResource LocalCurrencyFormat}}" />
</StackPanel>
</Window>