【问题标题】:Hide empty textBlock in windows phone 7?在Windows Phone 7中隐藏空的textBlock?
【发布时间】:2013-04-28 22:17:36
【问题描述】:

如果在 windows phone 7 应用程序(C#、silverlight、xaml)中为空,如何使 textBlock 自动隐藏?

我知道 WPF 有一个类似的问题,但它似乎不适用于 silverlight。

【问题讨论】:

  • 您是否在 TextBlock 上使用数据绑定?

标签: c# windows-phone-7 xaml


【解决方案1】:

您可以使用转换器:

<TextBlock Visibility="{Binding YourString, Converter={StaticResource LengthConverter}" />

<UserControl.Resources>
    <converter:LengthConverter x:Key="LengthToVisibilityConverter" />
</UserControl.Resources>

那么转换器是:

public class LengthToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string text = (string)value;
        return text.Length > 0 ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

您可以通过直接绑定到文本长度来使其更简洁:

<TextBlock Visibility="{Binding YourString.Length, Converter={StaticResource LengthConverter}" />

在这种情况下,转换器变为:

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        int length = (int)value;
        return length > 0 ? Visibility.Visible : Visibilty.Collapsed;
    }

在此处了解有关转换器的更多信息:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converter(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2011-07-23
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多