Встроенные конвертеры WPF IValueConverters

86

Хорошо, было приятным сюрпризом (после написания этого несколько раз) обнаружить, что BooleanToVisibilityConverter уже существует в пространстве имен System.Windows.Controls .

Наверное, таких скрытых экономителей времени больше.

У кого-нибудь есть?

cz_dl
источник

Ответы:

100

Я провел быстрый поиск с помощью обозревателя объектов, и это то, что у меня есть.

Получено из 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

Получено из IMultiValueConverter:

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

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

Обратите внимание, что Xceed (без подключения) доступны бесплатно с их DataGrid. Помимо них, есть кое-что умное, например, конвертер отладки . Я также использовал последний IValueConverter и уверен, что можно найти и другие полезные свойства лямбда-функции.

MrTelly
источник
3
Надеюсь, вы не против - просто отредактировал это, отсортировав результаты. Приятно видеть, что встроено, а что характерно для Xceed.
Эдди Паркер
1
Интересно, какие из них все еще доступны на универсальной платформе Windows для разработки универсальных приложений Windows 10?
Alex Vang
1
В MSDN в разделе «Информация о версии» содержится просто «.NET Framework - доступно с версии 3.0» для всех конвертеров от Microsoft. Похоже, универсальная платформа Windows не поддерживается, @AHelloWorldDev. (Например, System.Array явно заявляет о поддержке UWP в разделе информации о версии.)
Palec
29

До версии 3.5 SP1 для форматирования строк требовался IValueConverter. Теперь вы можете использовать свойство StringFormat в Binding для этого.

Со страницы MSDN:

<DataTemplate>
  <TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0} -- Now only {1:C}!">
        <Binding Path="Description"/>
        <Binding Path="Price"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>
</DataTemplate>
Роберт Макни
источник
Дополнительные примеры см. В этой строке: blogs.msdn.com/llobo/archive/2008/05/19/…
Эшли Дэвис,
Также см. Этот msdn.microsoft.com/en-us/library/…
Tom A