我想在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>
答案 0 :(得分:0)
向Text
提供Width
或Checkbox
。如果不设置Text
属性,则长度将自动为&#34; 0&#34;如果您未指定其Width
。
<CheckBox Content="xyz" Width="1234"/>
答案 1 :(得分:0)
问题在于我以错误的方式绑定数据。我使用以下代码。
ListViewItem item = new ListViewItem();
item.Tag = docType;
item.Text = docType.Text;
listViewDocTypes.Items.Add(item);
正确的绑定方式是
listViewDocTypes.ItemsSource = docTypes;