Хорошо, было приятным сюрпризом (после написания этого несколько раз) обнаружить, что в пространстве имен System.Windows.Controls уже есть BooleanToVisibilityConverter.
Вероятно, есть еще такие скрытые экономия времени.
Кто-нибудь есть?
Хорошо, было приятным сюрпризом (после написания этого несколько раз) обнаружить, что в пространстве имен System.Windows.Controls уже есть BooleanToVisibilityConverter.
Вероятно, есть еще такие скрытые экономия времени.
Кто-нибудь есть?
Я сделал быстрый трал с помощью обозревателя объектов, и это то, что у меня есть.
Выведено из IValueConverter:
System.Windows.Controls.AlternationConverterSystem.Windows.Controls.BooleanToVisibilityConverterSystem.Windows.Documents.ZoomPercentageConverterSystem.Windows.Navigation.JournalEntryListConverter
Xceed.Wpf.DataGrid.Converters.CurrencyConverterXceed.Wpf.DataGrid.Converters.DateTimeToStringConverterXceed.Wpf.DataGrid.Converters.GreaterThanZeroConverterXceed.Wpf.DataGrid.Converters.IndexToOddConverterXceed.Wpf.DataGrid.Converters.IntAdditionConverterXceed.Wpf.DataGrid.Converters.InverseBooleanConverterXceed.Wpf.DataGrid.Converters.LevelToOpacityConverterXceed.Wpf.DataGrid.Converters.MultimodalResultConverterXceed.Wpf.DataGrid.Converters.NegativeDoubleConverterXceed.Wpf.DataGrid.Converters.NullToBooleanConverterXceed.Wpf.DataGrid.Converters.SourceDataConverterXceed.Wpf.DataGrid.Converters.StringFormatConverterXceed.Wpf.DataGrid.Converters.ThicknessConverterXceed.Wpf.DataGrid.Converters.TypeToBooleanConverterXceed.Wpf.DataGrid.Converters.TypeToVisibilityConverterXceed.Wpf.DataGrid.Converters.ValueToMaskedTextConverter
Получено из IMultiValueConverter:
System.Windows.Controls.BorderGapMaskConverterSystem.Windows.Navigation.JournalEntryUnifiedViewConverterSystem.Windows.Controls.MenuScrollingVisibilityConverter
Microsoft.Windows.Themes.ProgressBarBrushConverterMicrosoft.Windows.Themes.ProgressBarHighlightConverter
Обратите внимание, что Xceed (без подключения) доступны бесплатно с помощью DataGrid. Кроме того, там есть некоторые умные вещи, похожие на отладочный конвертер. Я также использовал последний IValueConverter, и я уверен, что там будет еще одна доброта лямбда-функции.
До версии 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>