0

У меня есть несколько столбцов в DataGridView, которые их свойство связывания, установленные на что-то вроде следующего:Silverlight XAML Связывание - Десятичная Удвоить

Binding="{Binding NetPrice}" 

Проблема заключается в том, что это поле NetPrice является десятичный тип и я хотел бы преобразовать его в Double внутри DataGrid.

Есть ли способ сделать это?

+0

Это не работает, как есть? – AnthonyWJones

ответ

1

Я бы создал конвертер. Конвертор принимает одну переменную и «преобразует» ее в другую.

Для создания преобразователей существует lotresources. Их также легко реализовать в 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}" 
+0

Спасибо. Раньше я использовал Преобразователи, я просто подумал, что, возможно, есть альтернатива некоторым более простым типам данных. – Overhed

Смежные вопросы