gpt4 book ai didi

c# - Xamarin Forms - 否定 bool 绑定(bind)值

转载 作者:可可西里 更新时间:2023-11-01 07:49:54 26 4
gpt4 key购买 nike

我正在学习 xamarin 表单和 mvvm 模式。我想知道,是否有可能否定绑定(bind) bool 值。我的意思是:

我有,比方说带有 isVisible 绑定(bind)的条目:

<Entry
x:Name="TextEntry"
IsVisible="{Binding IsVisibleEntry}"
/>

Label 我想在 TextEntry 可见时隐藏。

<Label x:Name="MainLabel" 
isVisible="!{Binding IsVisibleEntry}"/> //ofc it is not working

是否可以在 ViewModel 中不为 MainLabel 创建新变量?

最佳答案

选项一:转换器

定义转换器:

    public class InverseBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return !((bool)value);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
//throw new NotImplementedException();
}
}

在 XAML 中的用法:

    <Label x:Name="MainLabel" 
isVisible="{Binding IsVisibleEntry, Converter={Helpers:InverseBoolConverter}}"/>

XAML header

    xmlns:Helpers="clr-namespace:HikePOS.Helpers"

选项二:触发

    <Label x:Name="MainLabel" isVisible="{Binding IsVisibleEntry}">
<Label.Triggers>
<DataTrigger TargetType="Label" Binding="{Binding IsVisibleEntry}" Value="True">
<Setter Property="IsVisible" Value="False" />
</DataTrigger>
</Label.Triggers>
</Label>

关于c# - Xamarin Forms - 否定 bool 绑定(bind)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46315807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com