第0章 コントロール 1/2

C#.use(better, IronPython=”WPF”) 記事一覧
コントロール

《著》本間りす《監修》小泉ひよ子とタマゴ倶楽部
更新♪2008/10/15

任意の情報を表示するコントロールは、コンテンツとして、単一のデータ項目を扱う ContentControl と、複数のデータ項目を扱う ItemsControl とに大別できます。また、そのコンテンツには、テキストだけではなく、他のコントロールさえも保持できます。
《参照》コントロールの詳細は第1章で解説します。□

事例:ListBox

コントロール ListBox は、限られた領域に複数の項目を表示したいときに便利です。例題を使って、その便利な機能のいくつかを紹介します。



>ipy.exe exListBox.py
green

このアプリケーションを起動すると、3つのリスト項目が表示されます。任意のリスト項目を選択すると、選択した項目に対応する情報がコマンドプロンプトに出力されます。ここでは、選択した項目 green の文字列表現が green になっています。

リスト項目を追加する

ListBox の動作を確認するために、これを拡張した ExListBox を利用します。


win = Window(Title=__file__, Width=200, Height=150)
items = "red", "green", "blue"
win.Content = ExListBox(items)
Application().Run(win)

3つの項目 items を含む、リスト ExListBox を作成して、これをウィンドウのコンテンツ Content に保持させます。すると、指定したリスト項目が表示されます。


class ExListBox(ListBox):
def __init__(self, items):
for e in items:
self.Items.Add(e)
self.SelectionChanged += self.selectionChanged

複数のデータ項目を管理するのが、プロパティー Items です。これに、メソッド Add を使って各項目 e を追加すると、それらがリスト項目として表示されます。そして、イベント SelectionChanged に呼応する、イベントハンドラー selectionChanged を登録しておきます。

イベントハンドラーを登録する

リスト項目を選択したときの動作を規定するのが、プロパティー SelectionChanged です。これには、次のようなイベントハンドラーを設定しておきます。



def selectionChanged(self, sender, e):
print sender.SelectedItem

リスト項目を選択すると、イベント SelectionChanged が発生して、イベントハンドラー selectionChanged が起動されます。そして、選択した項目 SelectedItem の値を出力します。


1/2