[wpf] 기본 제공 WPF IValueConverters

좋아, 그것은 (그것을 여러 번 작성 후) 멋진 놀라운 이미 있다는 것을 발견했다 BooleanToVisibilityConverter 에서 System.Windows.Controls의 네임 스페이스.

아마도 이러한 숨겨진 시간 절약 기능이 더 많이있을 것입니다.

누구 있어요?



답변

나는 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.5 SP1 이전에는 문자열 형식화에 IValueConverter가 필요했습니다. 이제 Binding 의 StringFormat 속성을 사용하여 이를 수행 할 수 있습니다 .

MSDN 페이지에서 :

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


답변