Windows Phone 8的TextBlock

3
如何在 Windows Phone 8 中隐藏没有文本的 TextBlock?
<StackPanel>
    <TextBlock Text="{Binding Name}" FontSize="22" Margin="0,5,10,0" TextWrapping="NoWrap" TextAlignment="Center" TextTrimming="WordEllipsis" />
    <Image Source="{Binding Icon}" MaxWidth="36" MaxHeight="36" HorizontalAlignment="Left" Margin="10,-33,10,10" Stretch="Fill"/>
    <TextBlock Text="{Binding Description}" FontSize="14" Margin="10,0,10,5" MaxHeight="60" TextWrapping="Wrap" TextTrimming="WordEllipsis" />
</StackPanel>

我希望能够在文本块“描述”中没有任何文本的情况下隐藏它。这是否可能?这是一个多个“视图模型”文本块,因此它没有名称,也无法单独检查,因为每5-15秒加载20多个会影响性能。
1个回答

3

您需要创建一个IValueConverter,分析字符串的长度,

public class HideEmptyStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var input = (string)value;
        return string.IsNullOrWhiteSpace(input) ? Visibility.Collapsed : Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

将转换器实例添加到页面资源中,然后使用该转换器将Visibility属性绑定到描述上...
<TextBlock Text="{Binding Description}" Visibility="{Binding Description, Converter={StaticResource HideEmptyStringConverter}}" FontSize="14" Margin="10,0,10,5" MaxHeight="60" TextWrapping="Wrap" TextTrimming="WordEllipsis" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接