轉換器 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 否則。