gpt4 book ai didi

c# - 如何以最优雅的方式将数据绑定(bind)到 ItemsControl 中的特定项目属性?

转载 作者:行者123 更新时间:2023-11-30 21:19:46 25 4
gpt4 key购买 nike

场景:ListView 是数据绑定(bind)到 ObservableCollection<CustomClass> 的并通过自定义 ItemTemplate 显示它的项目。 CustomClass只包含三个字符串属性和一个 bool 属性,并且已经在它的四个属性中的每一个上实现了 INotifyPropertyChanged。 ListView 的自定义 ItemTemplate 在三个字符串属性上具有单向绑定(bind),在 bool 属性上具有双向绑定(bind),将其显示为 CheckBox。

问题:我正在寻找最优雅(就 WPF 而言)的方式来使用 TextBlock 显示该 ListView 中所有选中项目的计数 - 或者换句话说,所有项目将它们的 bool 属性设置为 true在那个集合中。如果其中一个 ListView 项目被选中/未选中,我希望 TextBlock 立即更新显示的计数。我知道有(相当)丑陋的方法可以通过代码隐藏和事件处理来实现这一点,但我想知道是否有一种聪明的方法可以完全在 XAML 中使用神秘的 DataBinding 语法来做到这一点。

编辑: 作为示例/说明:ListView 显示 100 个项目,其中 90 个项目的 bool 属性设置为 true ,因此 TextBlock 将显示“90”。如果用户通过它的 CheckBox 取消选中另一个项目,因此将其属性设置为 false通过双向绑定(bind),TextBlock 应更新为“89”。

最佳答案

就我个人而言,我可能会在我的 ViewModel 中执行此操作。订阅 ObservableCollection 中项目的属性更改,然后在 bool 属性更改时通知 ViewModel 上的 Count 属性更改。在您看来,只需绑定(bind)到 Count 属性即可。

关于c# - 如何以最优雅的方式将数据绑定(bind)到 ItemsControl 中的特定项目属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672257/

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