gpt4 book ai didi

c# - 切换列表中不同的和实际的项目

转载 作者:行者123 更新时间:2023-12-03 10:35:26 24 4
gpt4 key购买 nike

FileRecord 是在 MVVM 模型中与我的 wpf 数据网格绑定(bind)的可观察集合。

我的数据网格上方的每一列都有一个复选框。复选框名称为“SelectUnique--Columnname--”。当我单击这些复选框时,它应该在我的网格中显示该列的唯一值。

当我单击 TId 的唯一复选框时,我执行以下逻辑

 var grpd = FileRecord.GroupBy(item => item.TID).Select(grp => grp.First());
FileRecord= new ObservableCollection<FileData>(grpd); // will refresh the grid.

然后再次当我单击 CId 的唯一复选框时,我执行以下逻辑
  var grpd = FileRecord.GroupBy(item => item.CID).Select(grp => grp.First());
FileRecord= new ObservableCollection<FileData>(grpd);// will refresh the grid.

等等。在这种情况下,例如,如果我对所有列进行唯一选择,那么如果我想随机取消选择复选框(不是按照我选择唯一复选框的顺序),我想撤消我为该特定列所做的操作.例如,如果我取消选择 CID 唯一复选框,那么网格应该得到如此正确的结果。

如何实现这一目标?请帮忙。

最佳答案

当我想过滤这样的集合时,我有一个这样的属性:

public IEnumerable<FileData> FilteredFiles
{
get
{
if (Unique)
{
return Files.GroupBy(item => item.TID).Select(grp => grp.First());
}
else
{
return Files.GroupBy(item => item.CID).Select(grp => grp.First());
}
}
}

public ObservableCollection<FileData> Files
{
get; set;
}

public bool Unique
{
get
{
return unique;
}
set
{
unique = value;
RaisePropertyChanged("FilteredFiles");
}
}

绑定(bind) FilteredFiles当您从集合中添加/删除时,只需调用 RaisePropertyChanged("FilteredFiles")通知用户界面。

关于c# - 切换列表中不同的和实际的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31681685/

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