转换器 101

XAML 控件可能具有依赖项属性,可以绑定到 DataContext 或其他控件的对象。当被绑定的对象的类型与目标 DependencyProperty 的类型不同时,可以使用转换器来使一种类型适应另一种类型。

转换器是实现 System.Windows.Data.IValueConverterSystem.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 否则。