2013-10-02 223 views
3

如何隱藏Windows Phone 8中的TextBlock(如果它沒有文字)?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> 

我想隱藏文本塊「描述」,如果它裏面沒有任何文本。這將如何成爲可能?

這是一個多個「viewmodel」文本塊,因此它沒有名稱,不能單獨檢查,因爲每5-15秒加載超過20+的性能問題。

回答

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(); 
    } 
} 

轉換器的實例添加到您的網頁資源,然後綁定的可見性屬性,以使用轉換器的說明.. 。

<TextBlock Text="{Binding Description}" Visibility="{Binding Description, Converter={StaticResource HideEmptyStringConverter}}" FontSize="14" Margin="10,0,10,5" MaxHeight="60" TextWrapping="Wrap" TextTrimming="WordEllipsis" />