ItemsControl이 필요할 수 있습니다. 이렇게하면 지정된 DataTemplate을 사용하여 일련의 항목을 표시 할 수 있습니다. 당신은 ItemsControl에이 인라인 할 수 있습니다 :
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
또는 리소스에서 명시 적으로 데이터 템플릿을 참조 ... 뭔가 더 같은 :
<!-- In some parent resource section -->
<DataTemplate x:Key="MyDataTemplateName">
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
<!-- ... -->
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}" ItemTemplate="{StaticResource MyDataTemplateName}">
</ItemsControl>
또는 당신은 모양을 정의하는 DataTemplate을 정의 할 수 있습니다 너의 바운드 수업을 느낀다. 같은 뭔가를 (당신의 Linq에 - 투 - SQL은 익명 형식으로 돌출되어있는 경우,이 옵션은하지 않는다) :
<!-- In some parent resource section -->
<DataTemplate DataType="{x:Type MyBoundClass}">
<CheckBox IsChecked="{Binding NameOfTheCheckedPropertyOnEachItem}"/>
</DataTemplate>
<!-- ... -->
<ItemsControl ItemsSource="{Binding MyCollectionOfItems}">
</ItemsControl>
WPF 다음 각 항목의 데이터 형식과 일치하는 DataTemplate을 찾습니다 귀하의 컬렉션에. 이것은 다른 프리젠 테이션이 필요한 이기종 컬렉션을 바인딩하는 데 매우 유용 할 수 있습니다.
당신은 Stackpanel의 DataContext를 바인딩 할 수 있지만 데이터의 각 요소에 대한 템플릿을 반복하는 것에 대한 고유 한 논리는 없습니다. 단순히 자식 컨트롤에 대한 컨텍스트를 제공하고 {Binding ...}
문을 포함합니다. 반복 데이터를 처리하는 모든 컨트롤은 ItemsControl의 하위 항목이며 ItemsSource 속성을 통해 데이터를 가져옵니다.
+1 좋고 철저한 답변입니다. –