You likely want an ItemsControl. This allows you to present a series of items using a specified DataTemplate. You can either do this inline of the ItemsControl:
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
or reference the data template explicitly from a resource... something more like:
<!-- In some parent resource section -->
<DataTemplate x:Key="MyDataTemplateName">
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
<!-- ... -->
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}" ItemTemplate="{StaticResource MyDataTemplateName}">
</ItemsControl>
Or you can define a DataTemplate that defines the look and feel for your bound class. (Note that if your Linq-to-SQL is projecting into an Anonymous Type, this isn't an option) Something like:
<!-- In some parent resource section -->
<DataTemplate DataType="{x:Type MyBoundClass}">
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
<!-- ... -->
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}">
</ItemsControl>
WPF will then look for a DataTemplate that matches the DataType of each of the items in your collection. Note that this can be VERY helpful for binding heterogeneous collections which need different presentations.
You CAN bind the DataContext of the Stackpanel, but there is no inherent logic about repeating a template for each element of data. It simply provides a context for child controls and contained {Binding ...}
statements. All of the controls that handle repeating data descend from ItemsControl and take their data in through the ItemsSource property.