47章:[C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)

    作成2013.05.01

     WPFにもデータグリッド (DataGrid)クラスがありますのでサンプルプログラムを紹介します。

  1. 参照元情報
     C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)は
    「C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)」にジャンプする
     詳細の機能説明がありますが、かなり難解です。


  2. [C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)
     [C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)の完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [[C#/VB/XAML] データグリッド (DataGrid) を利用するには (WPF)]をダウンロードする。
     解凍すると「47DataGrid_WPF01」フォルダーがあります。
    注(1)「47DataGrid_WPF01」フォルダーのDataGrid_WPF01.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「MainWindow.xaml」をダブルクリックすると「デザイン」と「XAML」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「DataGrid_WPF011.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. DataGrid_WPF01.slnの実行
    (1)「Express 2012 for Windows Desktop」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)画面が表示されます。
    (4)BookNameの列は編集可能です。IsMagazineの欄はチャックができます。
    (5)Locationの列は選択ができます。
    (6)クローズボックスで終了します。


  4. プロジェクトの構成
    (1)MainWindow.xaml
    ・Button1を配置します。
    (2)MainWindow.xaml.cs
    ・コードを配置します。


  5. MainWindow.xamlの全コード
    <Window x:Class="DataGrid_WPF01.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:DataGrid_WPF01"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <x:Array x:Key="Books" Type="{x:Type local:Book}">
                <local:Book  
                    BookName="週刊マイクロソフト"  
                    IsMagazine="True"  
                    Location="新宿"  
                    BookInfo="http://www.microsoft.com" />
                <local:Book  
                    BookName="はじめてのMS"  
                    IsMagazine="False"  
                    Location="大手町"  
                    BookInfo="http://www.microsoft.com" />
                <local:Book  
                    BookName="マイクロソフト入門"  
                    IsMagazine="False"  
                    Location="初台"  
                    BookInfo="http://www.microsoft.com" />
            </x:Array>
        </Window.Resources>
        <Grid>
            <DataGrid ItemsSource="{StaticResource Books}" Name="DataGrid1" Margin="0,57,0,0" />
            <Button Content="Button" HorizontalAlignment="Left" Margin="35,13,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
        </Grid>
    </Window>
    

    (1)<Window.Resources>と<x:Array x:Key="Books" Type="{x:Type local:Book}"> で数表のデータ内容を設定します。
    (2) <DataGrid ItemsSource="{StaticResource Books}" Name="DataGrid1" Margin= "0,57,0,0" />でデータグリッドを配置します。


  6. MainWindow.xaml.csの全コード

    using System;
    using System.Windows;
    
    namespace DataGrid_WPF01
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var aa = ((DataGrid_WPF01.Book[])(DataGrid1.ItemsSource))[0].BookName;
            }
        }
    
        public enum Branch
        {新宿, 初台, 大手町, 赤坂,代田橋,調布,東京,上野 }
    
        public class Book
        {
            public string BookName { get; set; }
            public bool IsMagazine { get; set; }
            public Branch Location { get; set; }
            public Uri BookInfo { get; set; }
        } 
    }
    

    (1)var aa = ((DataGrid_WPF01.Book[])(DataGrid1.ItemsSource))[0].BookName;はデバッグ用のコードです。BookName列の0番目のデータ"週刊マイクロソフト"が変数aaに代入されます。
    (2)public enum Branch {新宿, 初台, 大手町, 赤坂,代田橋,調布,東京,上野 }で選択データを設定します。
    (3)public class Bookで数表の列のタイトルを設定します。


    感想:
    (1)WPFのDataGridクラスを使用するとかなり個性的な数表ができそうです。
    (2)数表の内部のデータを参照・変更の際のコードは((DataGrid_WPF01.Book[])(DataGrid1.ItemsSource))[0].BookName;となります。
    (3)完全に理解するのは、かなり難しそうです。







48章:独自のカラー配列の作成 (WPF)に行く。

トップページに戻る。