datagrid为空时提示消息

时间:2012-09-27 01:08:22

标签: c# .net wpf xaml

我正在使用WPF。我正在使用datagrid动态添加项目。

最初加载应用程序时,数据网格为空,或者当数据网格中的所有项目都被删除时,它只显示数据网格标题。

如何删除标题,并显示“请插入项目”等消息。当datagrid为空时。

1 个答案:

答案 0 :(得分:2)

我会使用IValueConverter。直接绑定到Items源,当它为null / empty时,返回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();
    }
}