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