0

Binding プロパティが次のように設定されている DataGridView にいくつかの列があります。

Binding="{Binding NetPrice}"

問題は、この NetPrice フィールドが Decimal 型であり、DataGrid 内で Double に変換したいことです。

これを行う方法はありますか?

4

1 に答える 1

1

コンバーターを作成します。コンバーターは 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}"
于 2009-10-20T21:45:35.590 に答える