Вбудовані перетворювачі WPF IValue


85

Гаразд, це було приємним сюрпризом (написавши це кілька разів), коли з’ясувалося, що в просторі імен System.Windows.Controls вже є BooleanToVisibilityConverter .

Можливо, таких прихованих заощаджувачів часу більше.

Хтось отримав?

Відповіді:


99

Я зробив швидкий трал, використовуючи Object Browser, і це те, що я маю.

Походить від 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, і я впевнений, що можна знайти ще кілька корисних функцій лямбда-функції.


3
Сподіваюся, ви не проти - просто відредагуйте це, відсортувавши висновки. Приємно бачити, що вбудовано, а що саме Xceed.
Едді Паркер,

1
Цікаво, які з них все ще доступні на універсальній платформі Windows для розробки універсальних програм Windows 10?
Alex Vang

1
У MSDN розділ Інформація про версію містить лише ".NET Framework - доступний з 3.0" для всіх перетворювачів від Microsoft. Схоже, універсальна платформа Windows не підтримується, @AHelloWorldDev. (Наприклад, System.Array чітко зазначає підтримку UWP у розділі Інформація про версію.)
Palec,

28

До версії 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/…
Ешлі Девіс,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.