トップ 一覧 ping 検索 ヘルプ RSS ログイン

WPF コントロールライブラリの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!WPF コントロールライブラリ
[WPF][Silverlight]
{{amazon 4798114200}}

*WPFはUIパッケージに期待する標準コントロールの大部分を提供します(DataGridなど、少数の例外もあり)。
*コンテンツモデルとテンプレートがビジュアルの大幅なカスタマイズを可能とするため、コントロールの重要な部分は、コントロールが提供するもでると対話モデルということになる。
!!!ボタン
*基本的にボタンは、「クリック可能」なもの
*ボタンは、標準のボタンの規定のルックアンドフィール以外は、BottonBaseのクリックイベント以外に重要な物は追加しません。
*CheckBoxとRadioButtonは、いずれも IsChecked(データモデル)プロパティとIsThreeState(対話モデル)プロパティをサポートするトグルボタンを表す。
*IsThreeStateがTrueの場合、Checked、Unchecked、Indeterminate(IsThreeStateがFalseの場合この状態にはならない)を切り替えることが出来る。
 <StackPanel Name="MainPanel">
     <Button Margin="5" VerticalAlignment="Top">Button</Button>
     <RadioButton>Radio</RadioButton>
     <RadioButton IsChecked="True">Radio</RadioButton>
     <RadioButton>Radio</RadioButton>
     <CheckBox>Check</CheckBox>
     <CheckBox>Check</CheckBox>
     <CheckBox IsThreeState="True">Check</CheckBox>
 </StackPanel>
{{ref_image wpf_button.jpg}}

!!クラス階層
{{ref_image wpf_button_hierarchy.jpg}}

!!!リスト
*WPFはテンプレートのサポートが充実しているため、ListBox、ComboBox、DomainUpDown、ラジオボタンリストのような物までが、基本コントロールの上位に異なるテンプレートを適用するだけで実現できる。
*WPFには、ListBox、ComboBox、ListView、TreeViewの4つの基本リストコントロールがある。
!!ソース
*すべてのリストコントロールには、2つのソースのいずれかを使用して項目を代入できる。
!Itemsプロパティ
*リスト内部のデータ項目リストにデータを追加
 var list = new ListBox();
 list.Items.Add("a");
 list.Items.Add("b");
 list.Items.Add("c");
!ItemSourceプロパティ
*リストが表示するデータ項目のコレクションをリストコントロールに提供
""リストコントロールの外部にあるデータを維持できる
 string[] items = { "1", "2", "3" };
 var list = new ListBox();
 list.ItemsSource = items;
!!ListBoxとComboBox
*オブジェクトモデルの観点からいうとこれらはほぼ同一
*ItemSourceプロパティを使用することが推奨され、IEnumerableを実装する任意の型をソースとして使用できる。
*.NET3.0からこれらのシナリオで使用するために特別に設計されたObservableCollection<T>という新しいコレクションが提供される。
*ObservableCollection<T>は、リストシナリオのデータソースとして変更追跡のための複数のインターフェースを実装している
*まったく新しいテンプレートを記述しなくてもコントロールの外観を調整出来るようになる一連のプロパティを提供。