当布尔值为真时显示一个检查符号

本文关键字:一个 检查 符号 布尔值 显示 | 更新日期: 2023-09-27 18:05:09

我有一个ListView与所有类型的任务,必须完成。当任务完成时,用户按下列表视图中的项目。这改变了我的web api中的布尔值。现在,当我从API获取所有项目时,我想在已经完成的项目上显示一个检查符号。

<SymbolIcon Grid.Column="0" x:Name="CompleteTask" Symbol="Accept"/>
<TextBlock Name="TaakNaam" 
    Grid.Column="1"
    Text="{x:Bind TaskName}" 
    FontSize="16"/>

该怎么写

当布尔值为真时显示一个检查符号

你可以写property

public Visibility TickVisibility
{
    get {return YourBoolean == true ? Visibility.Visible : Visibility.Collapsed;}
}

和Bind:

<SymbolIcon Grid.Column="0" x:Name="CompleteTask" Symbol="Accept" Visibility={Binding TickVisibility}/>

或每次YourBoolean改变时使用NotifyProperty或写入转换器,将实现IValueConverter并将转换bool<=>可视性

我创建了这个Converter:

public class BooleanToVisibilityConverter : IValueConverter
{
    public BooleanToVisibilityConverter()
    {
    }
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (value is bool && (bool) value)
        {
            return Visibility.Visible;
        }
        return Visibility.Collapsed;
    }
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return (value is Visibility && (Visibility)value == Visibility.Visible);
    }
}

并导入到我的视图中:

<Page.Resources>
    <vm:BooleanToVisibilityConverter x:Key="BoolToVis" />
</Page.Resources>

然后我给SymbolIcon添加了一个绑定:

<SymbolIcon Grid.Column="0" x:Name="CompleteTask" Symbol="Accept" Foreground="Green" Visibility="{Binding Path=Check, Converter=StaticResource BoolToVis}}"/>

来源:https://pmdevweb.wordpress.com/2016/05/24/uwp-binding-boolean-to-visibility/