我得在一個DataGridView一些列已綁定的屬性設置爲類似以下內容:的Silverlight XAML綁定 - 十進制爲Double
Binding="{Binding NetPrice}"
的問題是,這NetPrice領域是一個小數型我想在DataGrid中將其轉換爲Double。
有沒有辦法做到這一點?
我得在一個DataGridView一些列已綁定的屬性設置爲類似以下內容:的Silverlight XAML綁定 - 十進制爲Double
Binding="{Binding NetPrice}"
的問題是,這NetPrice領域是一個小數型我想在DataGrid中將其轉換爲Double。
有沒有辦法做到這一點?
我會創建一個轉換器。轉換器需要一個變量並將其「轉換」爲另一個變量。
有一個lot的resources創建轉換器。它們也很容易在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}"
謝謝。我以前使用過轉換器,我只是認爲也許有一些更簡單的數據類型的替代品。 – Overhed 2009-10-21 12:03:50
這不工作的,是什麼? – AnthonyWJones 2009-10-20 21:47:31