バージョン

xamGrid コントロールの代わりに xamDataGrid コントロールを使用してください。xamGrid は数年以内に廃止する予定のため、新しい機能の追加はありません。xamGrid のサポートおよび重要なバグ修正は廃止時まで提供されます。コードベースの xamDataGrid への移動に関する質問は、サポートまでお問い合わせください。

結合されたセルのカスタム表示

デフォルトで、結合された列には列の値が表示されます。ただし、テンプレートを使用することでこのデフォルトの表示を変更できます。

以下のスクリーンショットは、セルの結合機能を使用して、グリッド内でグループ化された単価列を表示します。結合されたセル値は、書式を通貨に設定した単価の値、および xamGrid コントロール内の各結合された列のグループ行の数を示します。

xamGrid Custom Display Merged Cells.png

図 1: MergedItemTemplate プロパティをデータ テンプレートのインスタンスに設定した xamGrid コントロール

これは Column の MergedItemTemplate プロパティをデータ テンプレートのインスタンスに設定することで実行されます。このデータ テンプレートのデータ コンテキストは、以下の 3 つのプロパティを持つ MergedItemDataContext タイプです。

  • Value - 結合された列の値

  • Records - 結合された列に属するデータ オブジェクトのコレクション

  • Count - 結合された列に属する項目の数。

XAML の場合:

<ig:TextColumn Key="UnitPrice" FormatString="{}{0:C}">
   <!-- データ テンプレートを使用して、結合された列ごとにカスタム キャプションを設定します -->
   <ig:TextColumn.MergedItemTemplate>
      <DataTemplate>
         <StackPanel Orientation="Horizontal">
            <!-- 通貨として Value をフォーマットするために値コンバーターを使用します -->
            <TextBlock Text="{Binding Value, Converter={StaticResource GroupByValueConverter}}"></TextBlock>
            <TextBlock Text=" (" />
            <TextBlock Text="{Binding Count}"></TextBlock>
            <TextBlock Text=")" />
         </StackPanel>
      </DataTemplate>
   </ig:TextColumn.MergedItemTemplate>
</ig:TextColumn>

関連トピック