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