Eingebaute WPF IValueConverter

83

Ok, es war eine schöne Überraschung (nach mehrmaligem Schreiben), dass im System.Windows.Controls- Namespace bereits ein BooleanToVisibilityConverter vorhanden ist .

Wahrscheinlich gibt es mehr solche versteckten Zeitsparer.

Hat jemand welche?

cz_dl
quelle

Antworten:

98

Ich habe ein schnelles Schleppnetz mit dem Objektbrowser gemacht und das habe ich.

Abgeleitet von 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

Abgeleitet von IMultiValueConverter:

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

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

Beachten Sie, dass die Xceed (keine Verbindung) mit ihrem DataGrid kostenlos verfügbar sind. Darüber hinaus gibt es einige clevere Dinge wie den Debugging-Konverter . Ich habe auch den letzten IValueConverter verwendet und ich bin sicher, dass es noch einige weitere Vorteile der Lambda-Funktion gibt.

MrTelly
quelle
3
Ich hoffe, es macht Ihnen nichts aus - bearbeiten Sie dies einfach, indem Sie die Ergebnisse sortieren. Schön zu sehen, was eingebaut ist und was Xceed-spezifisch ist.
Eddie Parker
1
Ich frage mich, welche davon noch auf der Universal Windows Platform für die Entwicklung von Windows 10 Universal Apps verfügbar sind.
Alex Vang
1
Unter MSDN enthält der Abschnitt Versionsinformationen nur ".NET Framework - Verfügbar seit 3.0" für alle Konverter von Microsoft. Es sieht so aus, als würde die universelle Windows-Plattform @AHelloWorldDev nicht unterstützt. (ZB System.Array gibt UWP-Unterstützung explizit im Abschnitt Versionsinformationen an.)
Palec
28

Vor 3.5 SP1 war ein IValueConverter für die Formatierung der Zeichenfolgen erforderlich. Jetzt können Sie dazu die StringFormat- Eigenschaft für die Bindung verwenden.

Von der MSDN-Seite:

<DataTemplate>
  <TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0} -- Now only {1:C}!">
        <Binding Path="Description"/>
        <Binding Path="Price"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>
</DataTemplate>
Robert Macnee
quelle
Weitere Beispiele finden Sie in dieser Zeile: blogs.msdn.com/llobo/archive/2008/05/19/…
Ashley Davis
Siehe auch diese msdn.microsoft.com/en-us/library/…
Tom A