您创建了一个无限递归的数据模板。通过为字符串设置DataTemplate,然后将复选框的内容设置为字符串,复选框将使用DataTemplate本身,因此您将在复选框中具有复选框,依此类推。
您可以通过在复选框中显式放置一个文本块来修复它:
<ListBox x:Name="drpReasons" Grid.Row="1" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal">
</WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Resources>
<DataTemplate DataType="{x:Type sys:String}">
<CheckBox Margin="5">
<TextBlock Text="{Binding}"/>
</CheckBox>
</DataTemplate>
</ListBox.Resources>
</ListBox>