【发布时间】:2012-11-21 18:30:01
【问题描述】:
我想使用 StringFormat 在 DataGrid 中显示我的数据。对象具有我想使用的格式字符串的属性...例如“{0:0.##} mmol/l”或“{0:0.##} mg/dl”来显示结果以不同的单位。
XAML:
<DataGrid ItemsSource="{Binding Results}">
<DataGrid.Columns>
<DataGridTextColumn Header="Value" Binding="{Binding Value, Converter={StaticResource stringFormatConverter}}" />
C# 中的转换器:
public class StringFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return string.Format("{0:0.##} mmol/l", value);
}
[...]
}
我如何告诉转换器使用格式字符串,它是我绑定到的项目的属性,而不是当前版本的转换器?
编辑: results 是 Result 的 ObservableCollection,看起来像
public class Result
{
public double Value {get; set; }
public string Key {get; set; }
public string FormatString {get; set; }
[...]
}
【问题讨论】:
-
哪个对象具有格式字符串的属性?如果 results 是 IEnumerable
,那么 X 是什么,它有什么属性?
标签: wpf mvvm binding string-formatting