やりたいこと
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)を以下のように書き換える。- <listview margin="18,32,20,45" name="listView1" itemssource="{Binding}">
- <listview.view>
- <gridview>
- <gridviewcolumn header="ID" displaymemberbinding="{Binding ID}" width="50">
- <gridviewcolumn header="Name" displaymemberbinding="{Binding Name}" width="100">
- <gridviewcolumn header="Age" displaymemberbinding="{Binding Age}" width="100">
- </gridviewcolumn></gridviewcolumn></gridviewcolumn></gridview>
- </listview.view>
- </listview>
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
- {
- /// <summary>
- /// MainWindow.xaml の相互作用ロジック
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- CollectionViewSource view = new CollectionViewSource();
- ObservableCollection<customer> customers = new ObservableCollection<customer>();
- 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; }
- }
- }
- </customer></customer>
0 件のコメント:
コメントを投稿