Я хочу установить TextBlock
в видимый/спящий режим в зависимости от привязанного значения. Это не работает, и я получаю это сообщение, когда хочу отлаживать свое приложение:
Установить свойство "System.Windows.Data.Binding.Converter" - исключение.
Значение, связанное с привязкой, имеет тип Uri
. Существует внутренний InvalidCastException
, который гласит:
Невозможно применить объект типа "System.String" к типу "System.Windows.Data.IValueConverter".
Здесь мой конвертер:
public class VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (value is string && string.IsNullOrEmpty(value as string))
{
return Visibility.Collapsed;
}
else if (value == null)
{
return Visibility.Collapsed;
}
else
{
return Visibility.Visible;
}
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
И вот XAML, который выдает исключение:
...
<Page.Resources>
<converters:VisibilityConverter x:Key="visibilityConverter" />
</Page.Resources>
...
<TextBlock Visibility="{Path=UrlAddress, Converter=visibilityConverter}">
This never works!
</TextBlock>
...
Помогите, пожалуйста!