gpt4 book ai didi

wpf - ListView ItemContainerStyle 模板

转载 作者:行者123 更新时间:2023-12-04 06:42:48 26 4
gpt4 key购买 nike

我创建了用作 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">
...

模板中的复选框绑定(bind)到 ListView 项的 IsSelected 属性:
<CheckBox x:Name="itemCheckBox" Width="13" Height="13" Focusable="False" IsChecked="{Binding Path=IsSelected, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">

并且文本 block 的文本绑定(bind)到 ListView 项的源的 Value 属性:
<TextBlock x:Name="textBlock" Padding="5,0,0,0" HorizontalAlignment="Stretch">
<ContentPresenter Content="{Binding Path=Value}"/>
</TextBlock>

我列表中的每个项目都是一个包含两个属性的对象, 值(value) 已检查 .我要做的是将对象的 IsChecked 属性绑定(bind)到 ListView 项的 IsSelected 属性。但是,我不知道如何从 ListViewItem 模板中访问我的对象的 IsChecked 属性。

我将文本 block 的内容绑定(bind)到我的对象的 Value 属性没有任何问题,但是如果我希望我的对象的 IsChecked 属性绑定(bind)到 ListView 的 IsSelected 属性,我什至会将绑定(bind)定义放在哪里元素?

最佳答案

每个 ListViewItem 的 DataContext 应在由父 ListView 创建时设置为项目数据,因此您应该能够使用:

<Style TargetType="{x:Type ListViewItem}" >
<Setter Property="IsSelected" Value="{Binding IsChecked}">
...
</Style>

关于wpf - ListView ItemContainerStyle 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4043505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com