作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 WPF 中创建一个填充有复选框的 ListBox,并且我想将“内容”值与一个简单的字符串值进行数据绑定(bind)。但是,当我尝试 <CheckBox Margin="5" Content="{Binding}" />
应用程序崩溃。
这就是我所拥有的。 (我确定我错过了一些简单的东西)
<ListBox Grid.Row="1" IsSynchronizedWithCurrentItem="True" x:Name="drpReasons">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" >
</WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Resources>
<DataTemplate DataType="{x:Type System:String}">
<CheckBox Margin="5" Content="{Binding}" />
</DataTemplate>
</ListBox.Resources>
</ListBox>
最佳答案
您创建了一个无限递归的 DataTemplate。通过将 DataTemplate 设置为 String,然后将 CheckBox 的 Content 设置为 String,CheckBox 将使用 DataTemplate 本身,因此您将在 CheckBoxes 中拥有 CheckBoxes,依此类推。
您可以通过在 CheckBox 中显式放置一个 TextBlock 来修复它:
<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>
关于wpf - DataBind 字符串到 DataTemplated 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/620293/
我是一名优秀的程序员,十分优秀!