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.