我正在使用WPF。我正在使用datagrid动态添加项目。
最初加载应用程序时,数据网格为空,或者当数据网格中的所有项目都被删除时,它只显示数据网格标题。
如何删除标题,并显示“请插入项目”等消息。当datagrid为空时。
答案 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();
}
}