I have the Following Collection: ObservableCollection Files
CheckedFileObject包含一个FileObject和一个bool isChecked。现在当用户选择一个文件时,该文件的isChecked值将变为true。
如果至少有一个CheckedFileObject包含IsChecked = true,我想使删除按钮可见。
所以我的问题是,是否可以根据ObservableCollection中的项切换可见性,以及如何切换?我不在乎有多少项,但如果选中了一项,按钮应该是可见的。
可能是这样的:
Visibility="{Binding Files[i].IsChecked, Mode=OneWay, Converter={StaticResource BooleanAndToVisibilityConverter}}"
或者可能是binding将ObservablCollection绑定到视图模型中的一个bool,该bool通过如下方式更新:
var isVisible = Files.Any(x => x.IsChecked == true);
当收藏品改变的时候,这可能吗
3条答案
按热度按时间u59ebvdq1#
你可以从
ListCollectionView
类和changeButton中获得项目跟踪的特性。基于集合视图中项目计数的可见性:显示原始集合中的项。按钮绑定到筛选的集合:
CheckedFileObject类必须具有属性更改通知(实现INotifyPropertyChanged):
rm5edbpk2#
您可以尝试使用如下所示的转换器:
请注意,如果在视图中多次重复此控件,则可能需要改进此代码的性能。
nlejzf6q3#
您也可以使用多重选择来实现它