WPF IValueConverters incorporati


86

Ok, è stata una bella sorpresa (dopo averlo scritto più volte) scoprire che esiste già un BooleanToVisibilityConverter nello spazio dei nomi System.Windows.Controls .

Probabilmente ci sono altri simili risparmiatori di tempo nascosti.

Qualcuno ne ha preso un po '?

Risposte:


100

Ho fatto una rete a strascico veloce usando il browser degli oggetti e questo è quello che ho.

Derivato da 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

Derivato da IMultiValueConverter:

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

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

Nota quelli Xceed (nessuna connessione) sono disponibili gratuitamente con il loro DataGrid. Oltre a quelli ci sono alcune cose intelligenti in giro come il convertitore di debug . Ho anche usato l'ultimo IValueConverter e sono sicuro che c'è anche qualche ulteriore bontà della funzione lambda da trovare.


3
Spero non ti dispiaccia - modifica semplicemente questo ordinando i risultati. Bello vedere cosa è integrato e cosa è specifico di Xceed.
Eddie Parker

1
Mi chiedo quali di loro siano ancora disponibili nella piattaforma Windows universale, per lo sviluppo di app universali per Windows 10?
Alex Vang

1
Su MSDN, la sezione Informazioni sulla versione contiene solo ".NET Framework - Disponibile dalla 3.0" per tutti i convertitori di Microsoft. Sembra che la piattaforma Windows universale non sia supportata, @AHelloWorldDev. (Ad esempio, System.Array afferma esplicitamente il supporto UWP nella sezione Informazioni sulla versione.)
Palec

29

Prima di 3.5 SP1, era richiesto un IValueConverter per la formattazione delle stringhe. Ora puoi usare la proprietà StringFormat su Binding per eseguire questa operazione.

Dalla pagina MSDN:

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

Vedi questa riga per altri esempi: blogs.msdn.com/llobo/archive/2008/05/19/…
Ashley Davis

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.