Ответ 1
В принципе, вам нужно будет написать IValueConverter
, чтобы вы могли привязать свойство Visibility
вашего TextBox
либо в поле Address
, либо в новом поле, которое вы создаете.
Если вы привязываетесь к полю Address
, вот как привязка может выглядеть так:
<TextBlock Text="{Binding Path=Address}"
Visibility="{Binding Path=Address, Converter={StaticResource StringLengthVisibilityConverter}" />
И тогда StringLengthVisiblityConverter
может выглядеть примерно так:
public class StringLengthVisiblityConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || value.ToString().Length == 0)
{
return Visibility.Collapsed;
}
else
{
return Visibility.Visible;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// Don't need to implement this
}
}
Тогда вам просто нужно добавить свой конвертер в качестве ресурса, используя такой синтаксис (где src
отображается в пространство имен, где установлен преобразователь):
<src:StringLengthVisiblityConverter x:Key="StringLengthVisiblityConverter" />