跳到主要内容
版本:11.0.0

内置数据绑定转换器

Avalonia UI 包含许多用于常见场景的内置数据绑定转换器:

转换器描述
取反运算符可以在数据绑定路径前面放置 ! 运算符以返回布尔值的反值。另请参见下面的注释。
StringConverters.IsNullOrEmpty如果输入字符串为空或为 null,则返回 true
StringConverters.IsNotNullOrEmpty如果输入字符串为空或为 null,则返回 false
ObjectConverters.IsNull如果输入为 null,则返回 true
ObjectConverters.IsNotNull如果输入为 null,则返回 false
BoolConverters.And一个多值转换器,如果所有输入都为 true,则返回 true
BoolConverters.Or一个多值转换器,如果任何输入为 true,则返回 true

取反运算符示例

此示例显示当绑定值为 false 时的 TextBlock

<StackPanel>
<TextBox Name="input" IsEnabled="{Binding AllowInput}"/>
<TextBlock IsVisible="{Binding !AllowInput}">不允许输入</TextBlock>
</StackPanel>

当您绑定到非布尔值时,取反运算符也有效。这是因为绑定值首先转换为布尔值(使用函数 Convert.ToBoolean),然后结果被取反。

例如,由于整数零被转换为 false(通过函数 Convert.ToBoolean),而所有其他整数值被转换为 true,您可以使用取反运算符在集合为空时显示消息,如下所示:

<Panel>
<ListBox ItemsSource="{Binding Items}"/>
<TextBlock IsVisible="{Binding !Items.Count}">未找到结果</TextBlock>
</Panel>

您还可以使用取反运算符两次。例如,当您希望执行从整数到布尔值的转换,然后取反该值时。

您可以使用此方法在集合为空(计数为零)时隐藏控件,如下所示:

<Panel>
<ListBox ItemsSource="{Binding Items}" IsVisible="{Binding !!Items.Count}"/>
</Panel>

其他转换示例

此示例绑定将在绑定文本为空或为 null 时隐藏文本块:

<TextBlock Text="{Binding MyText}"
IsVisible="{Binding MyText,
Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>

此示例将在绑定对象为空或为 null 时隐藏内容控件:

<ContentControl Content="{Binding MyContent}"
IsVisible="{Binding MyContent,
Converter={x:Static ObjectConverters.IsNotNull}}"/>

更多信息

信息

您可以在 这里 查看 Avalonia UI 值转换器示例。