【发布时间】:2010-10-28 13:47:17
【问题描述】:
我创建了用作 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}}">
并且文本块的文本绑定到列表视图项的来源的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 属性,我什至会将绑定定义放在哪里列表视图项?
【问题讨论】:
标签: wpf wpf-controls binding