我在 DataGridView 中有一些列,它们的 Binding 属性设置为如下所示:
Binding="{Binding NetPrice}"
问题是这个 NetPrice 字段是 Decimal 类型,我想在 DataGrid 中将它转换为 Double。
有没有办法做到这一点?
我在 DataGridView 中有一些列,它们的 Binding 属性设置为如下所示:
Binding="{Binding NetPrice}"
问题是这个 NetPrice 字段是 Decimal 类型,我想在 DataGrid 中将它转换为 Double。
有没有办法做到这一点?
我会创建一个转换器。转换器采用一个变量并将其“转换”为另一个变量。
有很多资源可用于创建转换器。它们也很容易在 c# 中实现并在 xaml 中使用。
您的转换器可能与此类似:
public class DecimalToDoubleConverter : IValueConverter
{
public object Convert(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
decimal visibility = (decimal)value;
return (double)visibility;
}
public object ConvertBack(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
throw new NotImplementedException("I'm really not here");
}
}
一旦你创建了你的转换器,你需要告诉你的 xaml 文件来包含它,如下所示:
在您的命名空间中(在您的 xaml 的最顶部),像这样包含它:
xmlns:converters="clr-namespace:ClassLibraryName;assembly=ClassLibraryName"
然后声明一个静态资源,如下所示:
<Grid.Resources>
<converters:DecimalToDoubleConverter x:Key="DecimalToDoubleConverter" />
</Grid.Resources>
然后像这样将它添加到您的绑定中:
Binding ="{Binding Path=NetPrice, Converter={StaticResource DecimalToDoubleConverter}"