我在列表视图中有一个文本块,当它为空或空时我需要隐藏或折叠。我尝试使用字符串转换器但是没有这样做。
还有其他想法吗?
更新#1: 这是文本块中的代码:
Visibility="{Binding Converter={StaticResource StringConverter}}
这是转换器:
public class StringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
return string.IsNullOrEmpty(value.ToString()) ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
答案 0 :(得分:1)
我建议在文本框中创建文本和可见性绑定。
以下是您拥有的视图模型属性的示例。
public String TextBoxText
{
get { return textBoxText; }
set
{
if (value != textBoxText)
{
textBoxText= value;
SetTextBoxVisibility();
OnPropertyChanged("TextBoxText");
}
}
}
private String textBoxText;
public Visibility TextBoxVisibility
{
get { return textBoxVisibility; }
set
{
if (value != textBoxVisibility)
{
textBoxVisibility= value;
OnPropertyChanged("TextBoxVisibility");
}
}
}
private Visibility textBoxVisibility;
public void SetTextBoxVisibility()
{
this.TextBoxVisibility = String.IsNullOrEmpty(this.TextBoxText) ? Visibility.Collapsed : Visibility.Visible;
}
答案 1 :(得分:0)
您没有展示代码的唯一方法是实例化转换器类。这是因为你没有这样做吗?
通常你会在app.xaml上添加这样的东西:
<Application.Resources>
<ResourceDictionary>
<conv:StringConverter x:Key="StringConverter " />
</ResourceDictionary>
</Application.Resources>