0

我一直在研究,并且一直在尝试不同的方式在我的列表框为空时显示消息。

已经按照这篇文章 WPF Listbox - Empty List Display Message

没有运气在我的视图模型和我的文本块锁中添加​​了代码,如下所示:

<TextBlock Text="{Binding EmptyMessage}" Visibility="{Binding Converter={StaticResource VisibilityConverter}, Path=allToDoItemsListBox.Count}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" IsHitTestVisible="False" />

还制作了一个看起来像这样的转换器:

公共类 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 中的转换器添加为资源

4

3 回答 3

1

我不认为返回的值是“折叠”或“可见”。不应该是 System.Windows.Collapsed 和 System.Windows.Visible 吗?

于 2012-08-07T16:01:31.880 回答
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;
于 2012-08-07T16:38:23.667 回答
0

您需要将 textBlock Visibility 绑定到如下属性:

public System.Windows.Visibilty EmptyMessageVisibility
{
    get { return itemList.Count == 0 ? Visibility.Collapsed : Visibility.Visible; }
}
于 2012-08-08T09:19:21.727 回答