0

Windows Phone 7アプリ(C#、silverlight、xaml)で空の場合、textBlockを自動的に非表示にする方法は?

WPF についても同様の質問があることは知っていますが、Silverlight には当てはまらないようです。

4

1 に答える 1

8

コンバーターを使用できます:

<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 をご覧ください。

于 2013-04-28T22:26:35.967 に答える