我一直在研究很多,并且在我的列表框为空时尝试了不同的方式来显示消息。
已经完成了这篇文章 WPF Listbox - Empty List Display Message
没有运气在我的viewmodel中添加了代码,我的文本块锁定如下:
<TextBlock Text="{Binding EmptyMessage}" Visibility="{Binding Converter={StaticResource VisibilityConverter}, Path=allToDoItemsListBox.Count}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" IsHitTestVisible="False" />
还制作了一个如下所示的转换器:
public class VisibilityConverter:IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && (int)value > 0)
return "Collapsed";
else
return "Visible";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
我缺少什么,应该工作,但事实并非如此。已将app.xanl中的转换器添加为资源
答案 0 :(得分:1)
我认为返回的值不是“折叠”或“可见”。不应该是System.Windows.Collapsed和System.Windows.Visible?
答案 1 :(得分:1)
尝试使用此代码:
public object Convert(object Value, Type TargetType, object Parameter, CultureInfo Culture)
{
if (value != null && (int)value > 0)
{
return Visibility.Collapsed;
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
为此,请检查您是否使用以下声明
using System.Windows;
答案 2 :(得分:0)
您需要将textBlock Visibility绑定到以下属性:
public System.Windows.Visibilty EmptyMessageVisibility
{
get { return itemList.Count == 0 ? Visibility.Collapsed : Visibility.Visible; }
}