0

WPFデータグリッドがあり、データグリッドの中央に「レコードが見つかりません」というメッセージを表示したいと思います。

これを行う方法の1つは、すべての列にまたがる単一のデータ行を追加し、whosの高さはデータグリッドの高さであり、テキストを行の中央に配置することです。

Imが苦労している主なことは、データグリッドに行をプログラムで追加することです。

これは可能ですか、それともこれを行うためのより簡単な方法がありますか?

4

2 に答える 2

1

次のように、プログラムでデータグリッドにアイテムを追加できます。

myDataGrid.Items.Add(new MyDataGridItem());

データグリッドのItemsSourceを何らかのコレクションなどに設定した場合は、代わりにそのコレクションを変更する必要があります。あなたはこのようにそれを行うことができます:

myCollection.Add(new MyDataGridItem());
myDataGrid.ItemsSource = null;
myDataGrid.ItemsSource = myCollection;
于 2012-09-05T12:56:51.717 に答える
1

代わりに「レコードが見つかりません」というメッセージを入力し、データがあるかどうかに応じてTextBlock表示/非表示にします。TextBlockDataGrid

<Grid>

  <DataGrid x:Name="_dataGrid" />

  <TextBlock 
    HorizontalAlignment="Center"
    VerticalAlignment="Center"
    Visibility="{Binding ElementName=_dataGrid, Path=HasItems, Converter={StaticResource BooleanToInverseVisibilityConverter}, Mode=OneWay}">
      No Records Found
  </TextBlock>

</Grid>

編集:ソースBooleanToInverseVisibilityConverter(WPFプロジェクトで常に利用できるこのような便利なコンバーターがたくさんあります)

public class BooleanToInverseVisibilityConverter : IValueConverter {

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
        return (bool) value ? Visibility.Collapsed : Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
        return null;
    }

}
于 2012-09-05T12:58:41.747 に答える