我正在处理一个项目的报告。我正在创建一份利润报告。在这里,我必须列出销售详情和销售退货详情。它们来自不同的类,因此它们是两个不同的可观察集合。我想首先列出销售详情,在完成销售后列出销售退货。我希望在单个数据网格上完成此操作
我已经尝试使用数据网格名称和项目源,但只列出销售回报
AllSalesProfitList = new ObservableCollection<SalesInvoice>(SalesInvoice.GetAllSalesProfitList(SelectQuerySales));
if (AllSalesProfitList.Count > 0)
{
ReportContainer.Visibility = Visibility.Visible;
ListSalesReportView.ItemsSource = AllSalesProfitList;
LabelTotalSalesAmountValue.Content = AllSalesProfitList.Sum(p => p.TotalSalesAmount);
}
else
{
NoRecordCheck();
}
AllSalesReturnProfitList = new ObservableCollection<SalesReturnInvoice>(SalesReturnInvoice.GetAllSalesReturnProfitList(SelectQuerySalesReturn));
if (AllSalesReturnProfitList.Count > 0)
{
ReportContainer.Visibility = Visibility.Visible;
ListSalesReportView.ItemsSource = AllSalesReturnProfitList;
LabelTotalSalesReturnAmountValue.Content = AllSalesReturnProfitList.Sum(p => p.TotalSalesReturnAmount);
}
else
{
NoRecordCheck();
}
它应首先列出所有销售,然后列出销售回报。
仅列出销售回报。
CompositeCollection是一个可以解决问题的班级。确实如此
允许多个集合和项目显示为单个列表。
所以你的代码会(或多或少)
CompositeCollection compositeCollection = new CompositeCollection();
CollectionContainer cc1 = new CollectionContainer();
cc1.Collection = AllSalesProfitList;
CollectionContainer cc2 = new CollectionContainer();
cc2.Collection = AllSalesReturnProfitList;
compositeCollection.Add(cc1);
compositeCollection.Add(cc2);
ListSalesReportView.ItemsSource = compositeCollection;
我希望它可以帮到你。