UWP 布尔值为真时显示复选符号

UWP Show a check symbol when boolean is true

我有一个 ListView,其中包含各种必须完成的任务。任务完成后,用户按下列表视图中的项目。这改变了我网站 api 中的一个布尔值。现在,当我从 API.

中获取所有项目时,我想在已经完成的项目上显示复选符号
<SymbolIcon Grid.Column="0" x:Name="CompleteTask" Symbol="Accept"/>
<TextBlock Name="TaakNaam" 
    Grid.Column="1"
    Text="{x:Bind TaskName}" 
    FontSize="16"/>

What it should be

你可以写属性

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

并绑定它:

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

或者每次 YourBoolean 改变时使用 NotifyProperty 或者编写将实现 IValueConverter 并将转换 bool<=>Visibility

的 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/