私はWPFを使用しています。データグリッドを使用してアイテムを動的に追加しています。
アプリケーションが最初にロードされたとき、データグリッドは空であるか、データグリッド内のすべての項目が削除されたときに、データグリッド ヘッダーのみが表示されます。
ヘッダーを削除して、「アイテムを挿入してください」などのメッセージを表示するにはどうすればよいですか。データグリッドが空のとき。
これにはを使用し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();
}
}