Binding プロパティが次のように設定されている DataGridView にいくつかの列があります。
Binding="{Binding NetPrice}"
問題は、この NetPrice フィールドが Decimal 型であり、DataGrid 内で Double に変換したいことです。
これを行う方法はありますか?
Binding プロパティが次のように設定されている DataGridView にいくつかの列があります。
Binding="{Binding NetPrice}"
問題は、この NetPrice フィールドが Decimal 型であり、DataGrid 内で Double に変換したいことです。
これを行う方法はありますか?
コンバーターを作成します。コンバーターは 1 つの変数を取り、それを別の変数に "変換" します。
コンバーターを作成するためのリソースはたくさんあります。また、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}"