Chắc chắn sử dụng một Binding
Nếu CheckBoxesfunction của bạn không liên quan và được khắp nơi, bạn sẽ cần 20 tài sản phụ thuộc khác nhau để ràng buộc vào trong DataContext của bạn hoặc ViewModel
Nếu CheckBoxesfunction của bạn là tất cả cùng nhau , chẳng hạn như được liệt kê cái khác hoặc trong một lưới điện, bạn có thể đặt chúng trong một bộ sưu tập và ràng buộc một ItemsControl
cho họ
<ItemsControl ItemsSource="{Binding Options}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Description}"
IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ItemsControl>
</ItemsControl>
ViewModel của bạn hoặc DataContext sẽ chứa một cái gì đó như thế này:
private List<Option> options;
private List<Option> Options
{
get
{
if (options== null)
{
options = new List<Option>();
// Load Options - For example:
options.Add(new Option { Description = "Option A", IsChecked = false });
options.Add(new Option { Description = "Option B" });
options.Add(new Option { Description = "Option C", IsChecked = true});
}
return options;
}
}
Và lớp Option
của bạn chỉ đơn giản là sẽ
public class Option
{
public string Description { get; set; }
public bool IsChecked { get; set; }
}
+1 - mặc dù tôi thích sử dụng IsSelected; IsChecked ngụ ý rằng đối tượng sẽ luôn bị ràng buộc vào một hộp kiểm (hoặc tương tự). –