Bộ chuyển đổi IValue WPF tích hợp


84

Ok, thật bất ngờ (sau khi viết nhiều lần) khi thấy rằng đã có BooleanToVisibilityConverter trong không gian tên System.Windows.Controls .

Có lẽ có nhiều tiết kiệm thời gian ẩn như vậy.

Bất cứ ai có một số?

Câu trả lời:


99

Tôi đã lướt nhanh bằng Trình duyệt đối tượng và đây là những gì tôi có.

Bắt nguồn từ 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

Bắt nguồn từ IMultiValueConverter:

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

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

Lưu ý rằng những cái Xceed (không có kết nối) có sẵn miễn phí với DataGrid của họ. Cũng như những thứ đó, có một số công cụ thông minh xung quanh như trình chuyển đổi gỡ lỗi . Tôi cũng đã sử dụng IValueConverter cuối cùng và tôi chắc chắn rằng có một số chức năng lambda tốt hơn nữa sẽ được tìm thấy.


3
Hy vọng bạn không phiền - chỉ chỉnh sửa điều này bằng cách sắp xếp các phát hiện. Rất vui khi thấy những gì có sẵn và những gì Xceed cụ thể.
Eddie Parker

1
Tôi tự hỏi cái nào trong số chúng vẫn có sẵn trong Nền tảng Windows chung, để phát triển Ứng dụng phổ thông cho Windows 10?
Alex Vang

1
Trên MSDN, phần Thông tin Phiên bản chỉ chứa ".NET Framework - Sẵn có từ 3.0" cho tất cả các trình chuyển đổi từ Microsoft. Có vẻ như Universal Windows Platform không được hỗ trợ, @AHelloWorldDev. (Ví dụ: System.Array nêu rõ hỗ trợ UWP trong phần Thông tin phiên bản.)
Palec

28

Trước 3.5 SP1, cần có IValueConverter để định dạng chuỗi. Bây giờ, bạn có thể sử dụng thuộc tính StringFormat trên Binding để thực hiện việc này.

Từ trang MSDN:

<DataTemplate>
  <TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0} -- Now only {1:C}!">
        <Binding Path="Description"/>
        <Binding Path="Price"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>
</DataTemplate>

Xem dòng này để biết thêm ví dụ: blog.msdn.com/llobo/archive/2008/05/19/…
Ashley Davis

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.