92 votes

Convertisseurs de valeurs IValueConverters intégrés dans WPF

Ok, j'ai eu la bonne surprise (après l'avoir écrit plusieurs fois) de découvrir qu'il existe déjà une BooleanToVisibilityConverter sur System.Windows.Controls espace de noms.

Il existe probablement d'autres gains de temps cachés de ce type.

Quelqu'un en a ?

106voto

MrTelly Points 10828

J'ai fait une recherche rapide en utilisant le navigateur d'objets et voici ce que j'ai.

Dérivé de IValueConverter :

System.Windows.Controls.AlternationConverter
System.Windows.Controls.BooleanToVisibilityConverter
System.Windows.Documents.ZoomPercentageConverter
System.Windows.Navigation.JournalEntryListConverter

Xceed.Wpf.DataGrid.Converters.CurrencyConverter
Xceed.Wpf.DataGrid.Converters.DateTimeToStringConverter
Xceed.Wpf.DataGrid.Converters.GreaterThanZeroConverter
Xceed.Wpf.DataGrid.Converters.IndexToOddConverter
Xceed.Wpf.DataGrid.Converters.IntAdditionConverter
Xceed.Wpf.DataGrid.Converters.InverseBooleanConverter
Xceed.Wpf.DataGrid.Converters.LevelToOpacityConverter
Xceed.Wpf.DataGrid.Converters.MultimodalResultConverter
Xceed.Wpf.DataGrid.Converters.NegativeDoubleConverter
Xceed.Wpf.DataGrid.Converters.NullToBooleanConverter
Xceed.Wpf.DataGrid.Converters.SourceDataConverter
Xceed.Wpf.DataGrid.Converters.StringFormatConverter
Xceed.Wpf.DataGrid.Converters.ThicknessConverter
Xceed.Wpf.DataGrid.Converters.TypeToBooleanConverter
Xceed.Wpf.DataGrid.Converters.TypeToVisibilityConverter
Xceed.Wpf.DataGrid.Converters.ValueToMaskedTextConverter

Dérivé de IMultiValueConverter :

System.Windows.Controls.BorderGapMaskConverter
System.Windows.Navigation.JournalEntryUnifiedViewConverter
System.Windows.Controls.MenuScrollingVisibilityConverter

Microsoft.Windows.Themes.ProgressBarBrushConverter
Microsoft.Windows.Themes.ProgressBarHighlightConverter

Notez que ceux de Xceed (sans connexion) sont disponibles gratuitement avec leur DataGrid. En plus de ceux-là, il y a des trucs astucieux comme la fonction convertisseur de débogage . J'ai également utilisé le dernier IValueConverter et je suis sûr qu'il y a d'autres fonctions lambda à trouver, aussi.

4 votes

J'espère que cela ne vous dérange pas - j'ai juste édité ceci en triant les résultats. C'est bien de voir ce qui est intégré et ce qui est spécifique à Xceed.

1 votes

Je me demande lesquels sont encore disponibles dans la plateforme Windows universelle, pour développer des applications universelles Windows 10 ?

1 votes

Sur MSDN, la section Informations sur la version contient seulement ".NET Framework -- Disponible depuis 3.0" pour tous les convertisseurs de Microsoft. Il semble que la plate-forme Windows universelle ne soit pas prise en charge, @AHelloWorldDev. (Par exemple, System.Array indique explicitement la prise en charge de l'UWP dans la section Informations sur la version).

29voto

Robert Macnee Points 6998

Avant la version 3.5 SP1, un IValueConverter était nécessaire pour le formatage des chaînes de caractères. Désormais, vous pouvez utiliser le StringFormat sur Binding pour ce faire.

Depuis la page MSDN :

<DataTemplate>
  <TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0} -- Now only {1:C}!">
        <Binding Path="Description"/>
        <Binding Path="Price"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>
</DataTemplate>

0 votes

Voir cette ligne pour d'autres exemples : blogs.msdn.com/llobo/archive/2008/05/19/

0 votes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X