转换器 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
否则。