ジェネレーターの生成
class ExWindow(Window): def init(self): target = "tabControl", self._Controls(target) for e in Team(): item = TabItem( Header=e, ) self.tabControl.Items.Add(item) brush = ImageBrush( ImageSource=BitmapImage(Uri("image/%s.gif"%e, UriKind.Relative)) ) item.Content = Canvas( Width=50, Height=50, Background=brush, )
for 文とともにジェネレーター Team() を利用すると、各チーム e を順に参照できます。TabItem のヘッダー Header= には、各チームの名前 e を設定して、それをタブ項目 .Items に追加します。各 TabItem には、キャンバス Canvas を配置するとともに、その背景 Background= に画像 brush を表示します。
このとき、TabItem は、単一のデータ項目を扱う ContentControl の一種なので、プロパティー .Content を介して、各項目を「設定」します。TabControl は、複数のデータ項目を扱う ItemsControl の一種なので、プロパティー .Items を介して、各項目を「追加」します。