0

私はWPFを使用しています。データグリッドを使用してアイテムを動的に追加しています。

アプリケーションが最初にロードされたとき、データグリッドは空であるか、データグリッド内のすべての項目が削除されたときに、データグリッド ヘッダーのみが表示されます。

ヘッダーを削除して、「アイテムを挿入してください」などのメッセージを表示するにはどうすればよいですか。データグリッドが空のとき。

4

1 に答える 1

2

これにはを使用しIValueConverterます。Itemsソースに直接バインドし、null /空の場合は、を返しVisibility.Collapsedます。テキスト通知をとして追加TextBlockし、パラメーターを使用してコンバーターを無効にします。

<TextBlock Text="There are no items" 
    Visibility="{Binding Items,
        Converter={StaticResource ItemsToVisibilityConverter},ConverterParameter=negate}" />
<DataGrid Visibility="{Binding Items,
        Converter={StaticResource ItemsToVisibilityConverter}}">
</DataGrid>

そして、コンバーターはConverterParameter:を利用する必要があります。

public class ItemsToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        var items = value as IEnumerable<object>;
        bool isVisible = items != null && items.Count() > 0;
        if ((string)parameter == "negate") isVisible = !isVisible;
        return isVisible ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
于 2012-09-27T01:16:23.113 に答える