2009-10-20 32 views
0

我得在一個DataGridView一些列已綁定的屬性設置爲類似以下內容:的Silverlight XAML綁定 - 十進制爲Double

Binding="{Binding NetPrice}" 

的問題是,這NetPrice領域是一個小數型我想在DataGrid中將其轉換爲Double。

有沒有辦法做到這一點?

+0

這不工作的,是什麼? – AnthonyWJones 2009-10-20 21:47:31

回答

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 2009-10-21 12:03:50