Вам, вероятно, следует избегать создания флажков в таком коде. Кое-что, что может быть полезно для вас, это мини-ViewModel для флажка. Примерно так:
public class Option
{
public string Text {get; set;}
public bool IsChecked {get; set;}
}
Затем вы можете получить коллекцию этих опций, таких как:
var options = new ObservableCollection<Option>();
Когда это заполнено, вы можете привязать ObservableCollection к ItemsControl:
<ItemsControl ItemsSource="{Binding options}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Text}" IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Этот XAML создаст CheckBoxes для вас навсегда, опцию, которую вы добавили в свою коллекцию опций. Самое замечательное в том, что теперь вы можете спросить коллекцию опций, какие опции были выбраны:
var selectedNames = from option in options
where option.IsChecked
select option.Text;
Использование привязки данных и шаблонов - это метод, с которым вам следует ознакомиться в Silverlight / WPF. Это действительно важная концепция, и она позволит вам делать удивительные вещи в вашем приложении.