我创建了用作ListView项目模板的样式,其中包含CheckBox和TextBlock:
<Style x:Key="CheckBoxListStyle" TargetType="{x:Type ListView}">
<Setter Property="SelectionMode" Value="Multiple"></Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type ListViewItem}" >
<Setter Property="Template">
...
模板中的复选框绑定到列表视图项的IsSelected属性:
<CheckBox x:Name="itemCheckBox" Width="13" Height="13" Focusable="False" IsChecked="{Binding Path=IsSelected, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">
并且textblock的文本绑定到列表视图项的源的Value属性:
<TextBlock x:Name="textBlock" Padding="5,0,0,0" HorizontalAlignment="Stretch">
<ContentPresenter Content="{Binding Path=Value}"/>
</TextBlock>
我列表中的每个项目都是一个包含两个属性的对象, Value 和 IsChecked . 我想要做的是将我的对象的IsChecked属性绑定到我的列表视图项的IsSelected属性 . 但是,我不知道如何从ListViewItem模板中访问我的对象的IsChecked属性 .
我没有遇到任何问题将文本块的内容绑定到我的对象的Value属性,但如果我希望我的对象的IsChecked属性绑定到列表视图的IsSelected属性,我甚至会放置绑定定义项目?
1 回答
每个ListViewItem的DataContext应该在父ListView创建时设置为项数据,因此您应该能够使用: