Я хочу использовать две наблюдаемые коллекции на одной сетке данных - PullRequest
0 голосов
/ 01 апреля 2019

Я работал с отчетами проекта.Я создавал отчет о прибыли.Здесь я должен перечислить как детали продаж, так и детали возврата продаж.Они происходят из разных классов, и поэтому они представляют собой две разные наблюдаемые коллекции.Сначала я хочу указать детали продаж, после завершения продаж, а затем список продаж.Я хочу, чтобы это было сделано в одной сетке данных

Я пробовал это с использованием имени сетки данных и источника товара, но в списке отображается только доход от продаж

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();
}

Ожидаемый результат

Сначала должен быть указан список всех продаж, а затем возврат продаж.

Фактический результат

Показывает только возврат продаж.

1 Ответ

0 голосов
/ 01 апреля 2019

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;

Надеюсь, это поможет вам.

...