当布尔值为真时显示一个检查符号
本文关键字:一个 检查 符号 布尔值 显示 | 更新日期: 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/