无法在WPF中显示listviewitem的复选框
本文关键字:listviewitem 复选框 显示 WPF | 更新日期: 2023-09-27 18:07:58
我想在ListView中显示文本旁边的复选框。我的WPF窗口中有多个listview,因此我想将这种行为指定为资源中的样式。但是复选框不显示,只显示文本。所以,请找到下面我的代码和建议编辑。
<Window.Resources>
<Style TargetType="ListView" x:Key="ListViewTemplate">
<Setter Property="Background" Value="Transparent"></Setter>
<Setter Property="BorderBrush" Value="Transparent"></Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}" Content=""></CheckBox>
<Separator Width="5"></Separator>
<TextBlock Text="{Binding Text}"></TextBlock>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<ListView Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="8" Grid.RowSpan="5" x:Name="listViewDocTypes" Style="{DynamicResource ListViewTemplate}" >
</ListView>
</Grid>
为Checkbox
提供Text
或Width
。如果没有设置Text
属性,如果不指定其Width
,长度将自动为"0"。
<CheckBox Content="xyz" Width="1234"/>
问题是我绑定数据的方式不对。我使用了以下代码:
ListViewItem item = new ListViewItem();
item.Tag = docType;
item.Text = docType.Text;
listViewDocTypes.Items.Add(item);
正确的绑定方式是
listViewDocTypes.ItemsSource = docTypes;