2012年9月30日日曜日

wpfでDataGrid

やりたいこと
DataGridにデータを登録する。
この辺に書いてあるのとは違って、データベースとかは使わないで自分で保持している配列的なものを登録する方法を紹介。
http://www.atmarkit.co.jp/fdotnet/chushin/learningdatagrid_02/learningdatagrid_02_01.html
listviewでやった方法でやってみたらできたので、これでよいのかなぁという感じですが。
step1
ツールボックスからDataGridをウィンドウにD&Dする。 D&Dしただけだと小さいので大きくする。
step2
DataGridのプロパティを表示させて、名前欄にDataGrid1と入力する。 そのあと、DataGridのXAMLに、ItemsSource="{Binding}"を追記する。

    
        

    

step3
イベントハンドラWindow_Loaded_1を追加して、次のようなコードを書く。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using System.Collections.ObjectModel;  
namespace gridviewtest
{
    /// 
    /// MainWindow.xaml の相互作用ロジック
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        CollectionViewSource view = new CollectionViewSource();
        ObservableCollection customers = new ObservableCollection();
        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {
            int itemcount = 107;
            for (int j = 0; j < itemcount; j++)
            {
                customers.Add(new Customer()
                {
                    ID = j,
                    Name = "item" + j.ToString(),
                    Age = 10 + j
                });
            }

            view.Source = customers;
            this.DataGrid1.DataContext = view;  
        }

        class Customer
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
        }  
    }
}
結果
こんな感じになる。
0 件のコメント:
コメントを投稿