0

J'ai quelques colonnes dans un DataGridView qui ont leur propriété Binding mis à quelque chose comme ce qui suit:Silverlight XAML Reliure - Décimal à doubler

Binding="{Binding NetPrice}" 

Le problème est que ce champ NetPrice est un type décimal et je voudrais le convertir en Double dans le DataGrid.

Existe-t-il un moyen de le faire?

+0

Cela ne fonctionne pas comme-est? – AnthonyWJones

Répondre

1

Je voudrais créer un convertisseur. Un convertisseur prend une variable et la "convertit" en une autre. Il existe un lot de resources pour créer des convertisseurs. Ils sont également faciles à implémenter dans C# et à utiliser dans xaml.

Votre convertisseur pourrait ressembler à ceci:

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"); 
    } 
} 

Une fois que vous avez créé votre convertisseur, vous devez dire à votre fichier XAML pour l'inclure comme ceci:

dans vos espaces de noms (à haut de votre XAML), inclure comme ceci:

xmlns:converters="clr-namespace:ClassLibraryName;assembly=ClassLibraryName" 

déclarera alors une ressource statique, comme ceci:

<Grid.Resources> 
    <converters:DecimalToDoubleConverter x:Key="DecimalToDoubleConverter" /> 
</Grid.Resources> 

Ensuite, ajoutez à votre fixation comme ceci:

Binding ="{Binding Path=NetPrice, Converter={StaticResource DecimalToDoubleConverter}" 
+0

Merci. J'ai déjà utilisé des convertisseurs, je pensais juste qu'il y avait peut-être une alternative avec certains des types de données les plus simples. – Overhed

Questions connexes