Jon*_*len 16 wpf binding visibility textblock
好的,这是我的XAML:
<TextBlock Text="{Binding Path=InstanceName}"></TextBlock>
Run Code Online (Sandbox Code Playgroud)
如果InstanceName是null或空字符串,我想要Visibility="Collapsed".否则我想要Visibility="Visible".我该怎么办?
Mar*_*ter 44
您可以使用ValueConverter:
<TextBlock
Visibility="{Binding InstanceName, Converter={local:StringNullOrEmptyToVisibilityConverter}}"
Text="{Binding InstanceName}"/>
Run Code Online (Sandbox Code Playgroud)
使用以下代码隐藏:
public class StringNullOrEmptyToVisibilityConverter : System.Windows.Markup.MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return string.IsNullOrEmpty(value as string)
? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
Run Code Online (Sandbox Code Playgroud)