2012年9月28日金曜日

WPF で ListView

やりたいこと
WPFのListViewに見出しをつけて、項目をいれたい。 MSのサイトでやり方とサンプルコードがおいてあるので、 これをもう少し簡単に説明したい。 MSのサイトに記載されている以上のことはなにもやってないので、そちらで理解できる方はまったく見る必要なし。
◆説明
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.listview(v=vs.80).aspx
◆MSのサンプル
http://code.msdn.microsoft.com/windowsdesktop/CSWPFPaging-ce1ce482
どんなのを作るか?
Step1
ツールボックスの中のListViewをWPFのウィンドウにはっつける。
Step2
XAMLのソース(UIの下にあるXML)を以下のように書き換える。

        
            
                
                    
                    
                    
                   
                
            
        

これで見出しができる。ここまででこんな感じになる。
Step3
Loded のイベントハンドラを追加する。
Step4
あとはコードのほうに、こんな感じのソースを書く。(MSのサンプルから少し省いた。)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 WpfApplication1
{
    /// 
    /// MainWindow.xaml の相互作用ロジック
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        CollectionViewSource view = new CollectionViewSource();
        ObservableCollection customers = new ObservableCollection();
        private void Window_Loaded(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.listView1.DataContext = view;
        }
    }
    class Customer
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }
}
つまついた点
listviewのコントロールを貼り付けたら、あとはWindowsのFormと同じだろう。というのりでやってみたら、全然ビルドが通らなかった。
0 件のコメント:
コメントを投稿