0

私は多くのことを研究しており、リストボックスが空のときにメッセージを表示するさまざまな方法を試しています。

この投稿のように実行しました WPF Listbox - Empty List Display Message

運が悪かったので、ビューモデルにコードを追加し、テキストブロックを次のようにロックしました。

<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 にコンバーターを追加しました

4

3 に答える 3

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 宣言があるかどうかを確認してください

using System.Windows;
于 2012-08-07T16:38:23.667 に答える
1

戻り値が「Collapsed」または「Visible」ではないと思います。System.Windows.Collapsed と System.Windows.Visible ではないでしょうか。

于 2012-08-07T16:01:31.880 に答える
0

次のようなプロパティに textBlock Visibility をバインドする必要があります。

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