我正在尝试使用StringFormater和XmlDataProvider,但没有成功
<Grid.Resources>
<XmlDataProvider x:Key="xmlData" XPath="/data" IsAsynchronous="False">
<x:XData>
<data xmlns="">
<AMOUNT1>0.00</AMOUNT1>
</data>
</x:XData>
</XmlDataProvider>
</Grid.Resources>
<TextBox x:Name="DollarAmount1"
Text = "{Binding XPath=/data/AMOUNT1,
StringFormat={0:C2}}"
DataContext="{Binding Source={StaticResource xmlData}}" />我尝试了以下所有的StringFormats,但是没有人会将数据重新格式化为货币。有什么建议吗?
StringFormat={0:C2}
StringFormat={}{0:C2}
StringFormat=\{0:C\}发布于 2014-02-03 20:02:36
XML值是字符串。您正在尝试将字符串格式化为字符串:>。
添加实现IValueConverter.的转换器类
码
public class StringToDoubleConverter : IValueConverter {
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture) {
double outValue = 0;
if (value != null)
{
outValue = System.Convert.ToDouble(value);
}
return outValue;
}
public object ConvertBack(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture) {
double outValue = 0;
if (value != null)
{
outValue = System.Convert.ToDouble(outValue);
}
return outValue;
}}
然后将转换器添加到绑定中。
XAML
<TextBox x:Name="DollarAmount1"
Text="{Binding
Converter={StaticResource StringToDoubleConverter},
StringFormat=\{0:C\},
XPath=/data/AMOUNT1}"
DataContext="{Binding Source={StaticResource xmlData}}" />https://stackoverflow.com/questions/21536122
复制相似问题