how to wpf アプリケーション part4 by 中博俊

18
わわわわわわ わわわわわ #18 How To WPF わわわわわわわわ Part4 By わわわ

Upload: russell-hampton

Post on 03-Jan-2016

37 views

Category:

Documents


3 download

DESCRIPTION

How To WPF アプリケーション Part4 By 中博俊. WPF とは. いちおう Windows Vista 向けに出荷された .NET3.0 で、初搭載された Windows クライアントプログラムの一形態 現在の最新バージョンは 3.5 いちおう Windows Forms の置き換え クライアントの表現を豊かにしてくれるツールとしてこれから期待しています。 XAML というもので UI を記述することができます。 Silverlight でも XAML を使います。. おさらい. - PowerPoint PPT Presentation

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