【发布时间】:2017-02-13 03:06:53
【问题描述】:
假设这个基类
public class Contrat_Paye_Item
{
public int CPI_TYPE { get; set; }
public string CPI_TEXT { get; set; }
public decimal CPI_AMOUNT { get; set; }
}
在我的视图模型中,我从该类中列出了这样的列表:
private ObservableCollection<Contrat_Paye_Item> listapayer;
public ObservableCollection<Contrat_Paye_Item> ListaPayer
{
get
{
return listapayer;
}
set
{
listapayer = value;
OnPropertyChanged("ListaPayer");
}
}
在 VM 构造函数中,只有一些测试数据:
listapayer.Add(new Contrat_Paye_Item()
{
CPI_TYPE = 0,
CPI_TEXT = "Loyer",
CPI_AMOUNT = 100
});
listapayer.Add(new Contrat_Paye_Item()
{
CPI_TYPE = 1,
CPI_TEXT = "charge 1",
CPI_AMOUNT = 200
});
listapayer.Add(new Contrat_Paye_Item()
{
CPI_TYPE = 1,
CPI_TEXT = "Charges 2",
CPI_AMOUNT = 300
});
所以完整列表包含 3 个项目,总金额为 600。
在我的视图模型中,我添加了一个子列表,其中仅包含 CPI_TYPE = 1 的项目,并将其绑定到列表框,没有这样的问题:
public ICollectionView ListCharges
{
get
{
var sub= new CollectionViewSource { Source = listapayer }.View;
sub.Filter = p => (p as Contrat_Paye_Item).CPI_TYPE == 1;
return sub;
}
}
现在我要显示的是我的项目列表,其中一行包含子列表的 金额总和 项目。将其绑定到第二个列表框
类似:
100 号员工
收费 500
任何想法,欢迎提示。 谢谢
【问题讨论】:
标签: wpf filtering observablecollection icollectionview