Transcript
Page 1: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

How To WPFアプリケーション

Part4By 中博俊

Page 2: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

WPF とは

• いちおう Windows Vista 向けに出荷された .NET3.0 で、初搭載された Windows クライアントプログラムの一形態

• 現在の最新バージョンは 3.5• いちおう Windows Forms の置き換え• クライアントの表現を豊かにしてくれるツール

としてこれから期待しています。• XAML というもので UI を記述することができ

ます。• Silverlight でも XAML を使います。

Page 3: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

おさらい

• 第1回は Button と TextBox を使った簡単なアプリケーションの作り方でした。

• WPF アプリケーションは Document-Viewとして完全に UI とドキュメントを分けて考えましょう。

• そして INotifyPropertyChanged のインターフェイスを究めようという内容でした。

• NotifyPropertyChangedBase は今回も出てきますのでおさらい

Page 4: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

NotifyPropertyChangedBase

public class NotifyPropertyChangedBase : INotifyPropertyChanged {

public event PropertyChangedEventHandler PropertyChanged;

protected void FirePropertyChanged(

string PropertyName) {

if (this.PropertyChanged != null) {

this.PropertyChanged(this,

new PropertyChangedEventArgs(PropertyName));

}

}

}

Page 5: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

おさらい

• 第2回はコンバータと、ラジオボタンの制御についてでした。

• コンバータは IValueConverter を使い、 Convert と ConvertBack を用意するというところを解説しました。

• 第 3 回はコンボボックスを使い Ancestorを使い Visual Tree をちょっとだけ操作してみました。

Page 6: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

今回のアジェンダ

• ListView–一覧を表示しよう–ソートしよう–編集しよう–レコード追加しよう–データグリッドなくてもいいよね?

Page 7: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

ListView とは

• 一覧を表示する• アイコンモード、詳細モー

ドなどがある• エクスプローラのあれ

• でも WPF の Listview にはラージアイコンなどはまだ ?実装されていない。

Windows Forms

Page 8: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

DEMO のデータたち(前回と同じ)

Intstring

ISO5218 準拠

Page 9: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

DEMO2 のデータたち

public class Document : NotifyPropertyChangedBase {

public Row[] rows {

get { return _rows; }

set { _rows = value; }

}

private Row[] _rows = new Row[]

{

new Row(){ 名前 =" なか ", 年齢 = 32, 性別 = 性別 Enum. 男 },

new Row(){ 名前 =" えムナウ ", 年齢 = 21, 性別 = 性別 Enum.男 },

new Row(){ 名前 ="R 田中 ", 年齢 = 18, 性別 = 性別 Enum. シラネ }

};

}

Page 10: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

DEMO1

Page 11: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

ListView

• 幅を変更するのもできます。

• セルの順番が勝手に入れ替えられる可能性を考慮してください。( というか無関心でいられるかがポイント )

Page 12: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

ソートくらいつけましょ

DEMO2

Page 13: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

• WPF はコンテンツが置けるところ何でも差し替え可能です。

• しかもこの GridView にはテンプレート機能が・・・

DEMO3

Page 14: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

Page 15: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

ObservableCollection<T>

• いままでデータソースには Row[] を使ってました。

private Row[] _rows = new[]

{

new Row { 名前 =" なか ", 年齢 = 32, 性別 = 性別 Enum. 男 },

new Row { 名前 =" えムナウ ", 年齢 = 21, 性別 = 性別 Enum. 男 },

new Row { 名前 ="R 田中 ", 年齢 = 18, 性別 = 性別 Enum. シラネ }

};

でもこれお勧めできません。ObservableCollection<T> を使いましょう

Page 16: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

ObservableCollection<T>

• ObservableCollection<T> はINotifyCollectionChanged を実装しています。

• INotifyCollectionChanged はINotifyPropertyChanged のコレクション版です。

• データが増えたりすると、通知をあげてくれます。

Page 17: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

DEMO4

Page 18: How To WPF アプリケーション  Part4 By  中博俊

わんくま同盟 東京勉強会 #18

• ListView カッコいいでしょ?• これさえあれば DataGrid も GridView も

イラネ

• と思っていたのですが、夏ごろに追加されるかもだそうです。

• まだまだ WPF 関連から目が離せませんね。 Enjoy WPFEnjoy WPF


Top Related