なにが問題か:コントロールを特定する

関数 Walk を使って、マークアップで記述したコントロールを、分離コードで参照する方法を紹介しました。しかし、これには問題が残ります。各コントロールを識別する情報がないので、どれかを特定するのは困難です。そこで、組み込み関数 isinstance を使うと、コントロールの種類ごとに処理を振り分けられます。
《参照》組み込み関数 isinstance の詳細は、付録を参照してください。□


for e in Walk(self):
if isinstance(e, Button):
print "Button:", e
if isinstance(e, TextBlock):
print "TextBlock:", e
...

しかし、同じ種類のものが存在すると、そのどれかを特定できないので、やはり問題が残ります。そこで、例題を使って、各コントロールを識別する方法を紹介します。

>ipy.exe exTime.py

アプリケーションを起動すると、ボタンをクリックしたときの日時がテキスト領域に表示されます。