チェックボックス付きのデータテンプレートがある MultiselectList コントロール (SL ツールキットから) があります。これは私が持っているxamlコードです:
<toolkit:MultiselectList x:Name="BankMultiSelectList" ItemTemplate="{StaticResource CustomItemTemplate}"/>
およびデータ テンプレート:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="CustomItemTemplate">
<CheckBox x:Name="BankCheckBox" Content="{Binding Path=Name}" IsChecked="{Binding Path=IsSelected, Mode=TwoWay}"/>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
バインディングは、次の銀行クラスのメンバーで行われています。
public class Bank
{
public Bank() { }
public Bank(string name)
{
this.Name = name;
}
public string Name { get; set; }
public bool IsSelected { get; set; }
public List<Bank> GetBanks()
{
return new List<Bank>()
{
new Bank("Eurobank"),
new Bank("Millennium Bank"),
new Bank("Attica Bank"),
new Bank("Ταχυδρομικό Ταμιευτήριο"),
new Bank("Alpha Bank"),
new Bank("Τραπεζα Κύπρου"),
new Bank("Hellenic Bank"),
new Bank("Probank"),
new Bank("FBBank"),
new Bank("CitiBank"),
new Bank("Τραπεζα Πειραιώς"),
new Bank("HSBC Bank"),
new Bank("Εθνική Τράπεζα"),
new Bank("Εμπορική Τράπεζα"),
new Bank("Proton Bank"),
new Bank("Αγροτική Τράπεζα"),
new Bank("Γενική Τράπεζα"),
new Bank("Tbank"),
new Bank("Marfin Egnatia Bank"),
};
}
}
ページの読み込みで、MultiselectList (BankMultiSelectList と呼ばれる) の ItemsSource に銀行クラスのデータを入力します。
Bank bank = new Bank();
BankMultiSelectList.ItemsSource = bank.GetBanks();
これにより、クラスメソッドから名前がバインドされたいくつかのチェックボックスを含むページが作成されます。アプリケーションバーに「すべて選択」ボタンを作成して、押したときにすべてのチェックボックスを一度に選択したいと考えています。たとえば、IsChecked プロパティを true に設定するために、ページのすべてのチェックボックス コントロールを反復処理するにはどうすればよいでしょうか。よろしくお願いします。