转换器 101
XAML 控件可能具有依赖项属性,可以绑定到 DataContext 或其他控件的对象。当被绑定的对象的类型与目标 DependencyProperty 的类型不同时,可以使用转换器来使一种类型适应另一种类型。
转换器是实现 System.Windows.Data.IValueConverter 或 System.Windows.Data.IMultiValueConverter 的类; WPF 实现了一些开箱即用的转换器,但开发人员可能会在自定义实现中看到用途,因为它经常出现这种情况。
要在 XAML 中使用转换器,可以在 Resources 部分中实例化实例。对于下面的示例,将使用 System.Windows.Controls.BooleanToVisibilityConverter:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</UserControl.Resources>
注意定义的 x:Key 元素,然后用于引用绑定中 BooleanToVisibilityConverter 的实例:
<TextBlock Text="This will be hidden if property 'IsVisible' is true"
Visibility="{Binding IsVisible,
Converter={StaticResource BooleanToVisibilityConverter}}"/>
在上面的例子中,boolean IsVisible 属性被转换为 System.Windows.Visibility 枚举的值; Visibility.Visible 如果是真的,或者 Visibility.Collapsed 否则。