.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
87 个问题
你好,
我有一个图像,我想根据标签来显示和隐藏它:
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding Source={x:Reference LabelNickname}, Path=Text}" Value="Add">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding Source={x:Reference LabelNickname}, Path=Text}" Value="Add">
<Setter Property="IsVisible" Value="False" />
</DataTrigger>
</Image.Triggers>
如果 LabelNickname 的文本被添加,则显示图像,否则隐藏图像。
请问我怎样才能实现这个目标?
谢谢,
您好
您提供的代码是正确的,可以触发。我知道你想简化 XAML 中的触发方法,但我不得不说,这不能用触发器来实现。因为 XAML 不能包含条件处理。请参阅 XAML - .NET MAUI | Microsoft Learn。
不过,数据绑定可以引用基于代码的绑定转换器,它可以有效地进行一些条件处理。
您可以尝试绑定值转换器,并参考以下代码:
Converter 类
public class IsValiableBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (string)value == "Add";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? 1 : 0;
}
}
XMAL
<ContentPage.Resources>
<local:IsValiableBoolConverter x:Key="IsValiableBool" />
</ContentPage.Resources>
<Image...
IsVisible="{Binding Source={x:Reference LabelNickname},
Path=Text,
Converter={StaticResource IsValiableBool}}">
<!-- romve Triggers
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding Source={x:Reference LabelNickname}, Path=Text}" Value="Add">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding Source={x:Reference LabelNickname}, Path=Text}" Value="Add">
<Setter Property="IsVisible" Value="False" />
</DataTrigger>
</Image.Triggers>
-->
</Image>
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。