Windows Phone 7アプリ(C#、silverlight、xaml)で空の場合、textBlockを自動的に非表示にする方法は?
WPF についても同様の質問があることは知っていますが、Silverlight には当てはまらないようです。
Windows Phone 7アプリ(C#、silverlight、xaml)で空の場合、textBlockを自動的に非表示にする方法は?
WPF についても同様の質問があることは知っていますが、Silverlight には当てはまらないようです。
コンバーターを使用できます:
<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 をご覧ください。