atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • プログラミング図書館・本館
  • WPF
  • コンポーネント
  • コントロール
  • データグリッド

データグリッド

最終更新:2011年05月15日 15:31

atachi

- view
管理者のみ編集可
  • データグリッドの機能 [#mf0696a7]
    • データグリッドの設定 [#md3a96c1]
  • カラム [#h1c86b3c]
    • カラムの設定 [#h666d223]
    • カラムの種類 [#kce03342]
    • ボタンをカラムに表示する [#ufea0d87]
    • コンボボックスをカラムに表示する
  • 参考サイト

データグリッドの機能

カラム自動生成機能

DataGrid.ItemsSourceに設定されたデータの型情報を元に、データグリッドのカラムを自動生成する機能を持ちます。

カラムの定義を記述する必要がなく、データを与えるだけですべての情報が表示されることができます。
逆に表示するデータの項目を制限したい場合やカラムの順番の変更、表示形式の変更などを行いたい場合はこの機能を無効にし、カラムの定義を記述していく必要があります。

カラム自動生成機能の制御はDataGrid.AutoGenerateColumns プロパティのフラグで設定できます。

データグリッドの設定

名前 プロパティ名 設定例 備考
読み込み専用モード DataGrid.IsReadOnly True グリッド全体を読み取り専用モードにする。編集モードにならない
ソートの有効 DataGrid.AllowSorting True レコードのソートを許可する
ユーザーによるレコードの追加 DataGrid.CanUserAddRows True 実行時にユーザーによってレコードの追加を許可する
ユーザーによるレコードの削除 DataGrid.CanUserDeleteRows True 実行時にユーザーによってレコードの削除を許可する
ユーザーによるカラム位置の変更 DataGrid.CanUserReorderColumns True 実行時にユーザーによってカラムの場所の移動を許可する
ユーザーによるカラム幅の変更 DataGrid.CanUserResizeColumns True 実行時にユーザーによってカラムの幅の変更を許可する
カラムの自動生成機能 DataGrid.AutoGeneratingColumn True データソースから自動的にカラムの生成を行う

カラム

カラムの設定

名前 プロパティ名 設定例 備考
ヘッダー名 DataGridColumn.Header 文字列 ヘッダー名に設定したい文字列
ヘッダーの幅 DataGridColumn.Width 数字 ヘッダーの幅
* すべてのカラムの幅の合計がグリッドの幅より小さい場合に、グリッド幅まで広げる
SizeToCells 列の中でセルの幅が最大のものに合わせる
SizeToHeader セルの幅をヘッダー名の幅に合わせる
読み取り専用列 DataGridColumn.IsReadOnly True カラムを読み取り専用にする
グリッド全体を読み取り専用にするにはデータグリッドの設定を参照。

カラムの種類

定義済みのカラムを使用する。または、独自のカラムを定義することも可能。

カラム名 説明
DataGridTextColumn TextBlockまたはTextBoxによるカラムの描画を行う。文字列の表示や編集を必要とする場合に使用するカラム
DataGridCheckBoxColumn データがBoolean型でCheckBoxによるカラムの描画を行う。
DataGridComboBoxColumn ComboBoxによるカラムの描画を行う。
DataGridHyperlinkColumn データをURIとして扱う。Hyperlinkによるカラムの描画を行う。
DataGridTemplateColumn データテンプレートを使用して独自のコントロールを使用してカラムの描画を行う。

ボタンをカラムに表示する

DataGridTemplateColumnを使ってカラムを定義することで、カラムに任意のレイアウトで表示することができる。

下記の例はカラムにボタンを表示するサンプルです。

<DataGrid>
	<DataGrid.Columns>
		<DataGridTemplateColumn>
			<DataGridTemplateColumn.CellTemplate>
				<DataTemplate>
					<Button Content="テスト" />
				</DataTemplate>
			</DataGridTemplateColumn.CellTemplate>
		</DataGridTemplateColumn>
	</DataGrid.Columns>
</DataGrid>

コンボボックスをカラムに表示する

DataGridのカラム設定でDataGridComboBoxColumnを使用します。

表示されるコンボボックスの選択項目をDataGridのアイテム以外から設定する場合には、少し工夫が必要となります。

なぜかDataGridComboBoxColumn.ItemsSourceに直接バインドすることができないので、EditingElementStyleプロパティとElementStyleプロパティを使って直接コンボボックスのItemsSourceに表示させたい項目のコレクションをバインドします。

<Window>
<Grid>
    <DataGrid AutoGenerateColumns="False" Height="232" HorizontalAlignment="Left" Margin="12,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="479"
              ItemsSource="{Binding Studios}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="映画名" Binding="{Binding Label}" Width="150"/>
            <DataGridComboBoxColumn Header="DataGridComboBoxのテスト"
                                    SelectedItemBinding="{Binding CategoryType}">
                <DataGridComboBoxColumn.ElementStyle>
                    <Style TargetType="{x:Type ComboBox}">
                        <Setter Property="DisplayMemberPath" Value="ViewName" />
                        <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window} },Path=DataContext.Types}" />
                    </Style>
                </DataGridComboBoxColumn.ElementStyle>
                <DataGridComboBoxColumn.EditingElementStyle>
                    <Style TargetType="{x:Type ComboBox}">
                        <Setter Property="DisplayMemberPath" Value="ViewName" />
                        <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window} },Path=DataContext.Types}" />
                    </Style>
                </DataGridComboBoxColumn.EditingElementStyle>
            </DataGridComboBoxColumn>
 
            <!-- ↓の方法ではコンボボックスの一覧にItemsSourceを使うことができない -->
            <DataGridComboBoxColumn Header="DataGridComboBoxのテスト"
                                    SelectedItemBinding="{Binding CategoryType}"
                                    ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window} },Path=DataContext.Types}"
                                    DisplayMemberPath="ViewName"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</Window>

MyDataはXAMLの分離コードでWindowのDataContextに設定します。

public class MyData
{
	public MyData()
	{
		_Types.Add(new CategoryType { ViewName = "Type A" });
		_Types.Add(new CategoryType { ViewName = "Type B" });
		_Types.Add(new CategoryType { ViewName = "Type C" });
 
 
		_Studios.Add(new Studio { Label = "A", CategoryType = _Types.ElementAt(0) });
		_Studios.Add(new Studio { Label = "B", CategoryType = _Types.ElementAt(2) });
	}
 
 
	public ICollection<Studio> Studios
	{
		get { return _Studios; }
	}
 
	public ICollection<CategoryType> Types
	{
		get { return _Types; }
	}
 
	private ICollection<Studio> _Studios = new ObservableCollection<Studio>();
	private ICollection<CategoryType> _Types = new List<CategoryType>();
}
 
 
public class Studio
{
	public string Label { get; set; }
 
	public CategoryType CategoryType { get; set; }
}
 
public class CategoryType
{
	public string ViewName { get; set; }
}

参考サイト

  • MSDN DataGrid
  • DataGridの使い方
  • DataGridで行ごとに色を変えるには?
  • セル内のボタンを表示・非表示する方法
  • 動的にカラムの表示非表示を切り替えるDataGridの作成
「データグリッド」をウィキ内検索
LINE
シェア
Tweet

[Amazon商品]


プログラミング図書館・本館
記事メニュー

C#

  • 新機能
  • 言語文法
    • 型
    • 関数
    • クラス
    • 演算子
    • 構文
    • デリゲート
    • イベント
    • 例外処理
    • アトリビュート
    • 名前空間
    • ジェネリクス
  • リフレクション
  • LINQ

.NET Frameworks

  • 数値
  • 文字列
  • 日付時刻
  • オブジェクト
  • コレクション
  • ファイルシステム
  • スレッド
  • データテーブル
  • グラフィックス
  • デバッグ
    • ログ出力
    • ユニットテスト
  • ユーティリティ
  • ネットワーク
    • HTTP
  • デバイス
    • COMポート
  • EntityFrameworks
    • Code First Programming Model
  • デバイスドライバ
    • WinUSB

WPF

  • XAML
  • イベント
  • コマンド
  • スタイル
  • データバインディング
  • コンポーネント
  • グラフィックス
  • カスタムコンポーネント
    • 依存関係プロパティ

アプリケーション

  • 二重起動の防止
  • アンマネージドDLLの読み込み
  • 外部のアプリケーションを起動

VisualStudio

  • 拡張機能
  • カラー設定

ライブラリ

  • WPFToolkit
  • A Fast CSV Reader
  • AvalonDock

実装方法

  • ドラッグアンドドロップ
  • アプリケーション内のドラッグアンドドロップ
  • CSVからDataTable

minecraft

  • Bukkit
  • プラグイン
    • Permissions
    • SlowHealth
    • CookieMonster
    • iConomy
    • WorldGuard
    • Lockette
    • MyHome
    • BorderGuard

サイトについて

プロフィール/リンク/未分類

メモ/ゲーム/Stacks/Omoikane


更新履歴

取得中です。

ここを編集

記事メニュー2

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集

人気記事ランキング
  1. アプリケーション内のドラッグアンドドロップ
  2. iConomyプラグイン
  3. A Fast CSV Reader
  4. CookieMonsterプラグイン
  5. VisualStudio/拡張機能
  6. デリゲート
  7. WPF/グラフィックス
もっと見る
最近更新されたページ
  • 5100日前

    Bukkit
  • 5106日前

    トップページ
  • 5127日前

    メニュー
  • 5137日前

    WPF/グラフィックス
  • 5137日前

    .NET/グラフィックス
  • 5137日前

    .NET/グラフィックス/画像の書き込み
  • 5137日前

    .NET/グラフィックス/画像の読み込み
  • 5143日前

    .NET/コレクション
  • 5161日前

    .NET/WinUSB
  • 5196日前

    BorderGuardプラグイン
もっと見る
人気記事ランキング
  1. アプリケーション内のドラッグアンドドロップ
  2. iConomyプラグイン
  3. A Fast CSV Reader
  4. CookieMonsterプラグイン
  5. VisualStudio/拡張機能
  6. デリゲート
  7. WPF/グラフィックス
もっと見る
最近更新されたページ
  • 5100日前

    Bukkit
  • 5106日前

    トップページ
  • 5127日前

    メニュー
  • 5137日前

    WPF/グラフィックス
  • 5137日前

    .NET/グラフィックス
  • 5137日前

    .NET/グラフィックス/画像の書き込み
  • 5137日前

    .NET/グラフィックス/画像の読み込み
  • 5143日前

    .NET/コレクション
  • 5161日前

    .NET/WinUSB
  • 5196日前

    BorderGuardプラグイン
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. MADTOWNGTAまとめwiki
  2. 20XX @ ウィキ
  3. 戦隊・ライダー:怪人まとめ@ ウィキ
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. SDガンダム Gジェネレーションオーバーワールド 攻略Wiki
  6. NIKKEぺでぃあ
  7. オペラ対訳プロジェクト
  8. 役割論理専用wiki 
  9. とある魔術の禁書目録 Index
  10. 正田崇作品 @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 発車メロディーwiki
  7. オレカバトル アプリ版 @ ウィキ
  8. 検索してはいけない言葉 @ ウィキ
  9. モンスター烈伝オレカバトル2@wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. まどドラ攻略wiki
  3. ちいぽけ攻略
  4. シュガードール情報まとめウィキ
  5. SurrounDead 攻略 (非公式wiki)
  6. 20XX @ ウィキ
  7. 戦国ダイナスティ攻略@ウィキ
  8. ソニックレーシング クロスワールド @ ウィキ
  9. Shoboid RPまとめwiki
  10. シミュグラ2Wiki(Simulation Of Grand2)GTARP
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  2. やなせたかし - アニヲタWiki(仮)
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 参加者一覧 - MADTOWNGTAまとめwiki
  5. 参加者一覧 - ストグラ まとめ @ウィキ
  6. スーパーロボット大戦Y - アニヲタWiki(仮)
  7. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  8. 模擬ドラフト結果 - おんJ模擬ドラフトまとめwiki
  9. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. 駆動方式(自動車) - アニヲタWiki(仮)
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.