Вместо того, чтобы вводить стиль только для этого, для такого рода вещей я предпочитаю использовать конвертер, который будет обрабатывать нулевую или пустую строку.
<TextBlock Text="{Binding Foo}"
Visibility="{Binding Foo,
Converter={StaticResource StringToVisibilityConverter}}" />
Где StringToVisibilityConverter
определяется следующим образом:
[ValueConversion(typeof(string), typeof(Visibility))]
public class StringToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (string.IsNullOrEmpty((string)value))
{
return Visibility.Collapsed;
}
else
{
return Visibility.Visible;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}