Download - How To WPF アプリケーション Part4 By 中博俊
![Page 1: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/1.jpg)
わんくま同盟 東京勉強会 #18
How To WPFアプリケーション
Part4By 中博俊
![Page 2: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/2.jpg)
わんくま同盟 東京勉強会 #18
WPF とは
• いちおう Windows Vista 向けに出荷された .NET3.0 で、初搭載された Windows クライアントプログラムの一形態
• 現在の最新バージョンは 3.5• いちおう Windows Forms の置き換え• クライアントの表現を豊かにしてくれるツール
としてこれから期待しています。• XAML というもので UI を記述することができ
ます。• Silverlight でも XAML を使います。
![Page 3: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/3.jpg)
わんくま同盟 東京勉強会 #18
おさらい
• 第1回は Button と TextBox を使った簡単なアプリケーションの作り方でした。
• WPF アプリケーションは Document-Viewとして完全に UI とドキュメントを分けて考えましょう。
• そして INotifyPropertyChanged のインターフェイスを究めようという内容でした。
• NotifyPropertyChangedBase は今回も出てきますのでおさらい
![Page 4: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/4.jpg)
わんくま同盟 東京勉強会 #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 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/5.jpg)
わんくま同盟 東京勉強会 #18
おさらい
• 第2回はコンバータと、ラジオボタンの制御についてでした。
• コンバータは IValueConverter を使い、 Convert と ConvertBack を用意するというところを解説しました。
• 第 3 回はコンボボックスを使い Ancestorを使い Visual Tree をちょっとだけ操作してみました。
![Page 6: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/6.jpg)
わんくま同盟 東京勉強会 #18
今回のアジェンダ
• ListView–一覧を表示しよう–ソートしよう–編集しよう–レコード追加しよう–データグリッドなくてもいいよね?
![Page 7: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/7.jpg)
わんくま同盟 東京勉強会 #18
ListView とは
• 一覧を表示する• アイコンモード、詳細モー
ドなどがある• エクスプローラのあれ
• でも WPF の Listview にはラージアイコンなどはまだ ?実装されていない。
Windows Forms
![Page 8: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/8.jpg)
わんくま同盟 東京勉強会 #18
DEMO のデータたち(前回と同じ)
Intstring
ISO5218 準拠
![Page 9: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/9.jpg)
わんくま同盟 東京勉強会 #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 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/10.jpg)
わんくま同盟 東京勉強会 #18
DEMO1
![Page 11: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/11.jpg)
わんくま同盟 東京勉強会 #18
ListView
• 幅を変更するのもできます。
• セルの順番が勝手に入れ替えられる可能性を考慮してください。( というか無関心でいられるかがポイント )
![Page 12: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/12.jpg)
わんくま同盟 東京勉強会 #18
ソートくらいつけましょ
DEMO2
![Page 13: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/13.jpg)
わんくま同盟 東京勉強会 #18
• WPF はコンテンツが置けるところ何でも差し替え可能です。
• しかもこの GridView にはテンプレート機能が・・・
DEMO3
![Page 14: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/14.jpg)
わんくま同盟 東京勉強会 #18
![Page 15: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/15.jpg)
わんくま同盟 東京勉強会 #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 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/16.jpg)
わんくま同盟 東京勉強会 #18
ObservableCollection<T>
• ObservableCollection<T> はINotifyCollectionChanged を実装しています。
• INotifyCollectionChanged はINotifyPropertyChanged のコレクション版です。
• データが増えたりすると、通知をあげてくれます。
![Page 17: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/17.jpg)
わんくま同盟 東京勉強会 #18
DEMO4
![Page 18: How To WPF アプリケーション Part4 By 中博俊](https://reader036.vdocuments.mx/reader036/viewer/2022081603/56813847550346895d9ff3f9/html5/thumbnails/18.jpg)
わんくま同盟 東京勉強会 #18
• ListView カッコいいでしょ?• これさえあれば DataGrid も GridView も
イラネ
• と思っていたのですが、夏ごろに追加されるかもだそうです。
• まだまだ WPF 関連から目が離せませんね。 Enjoy WPFEnjoy WPF