В WPF я построю этот код я хочу показать на DataGrid сумму «Desc» для каждого «PID»Возвращение IGrouping анонимного IEnumerable представить на DataGrid
public class Event
{
public int PID { get; set; }
public int Desc { get; set; }
}
private List<Event> data;
public MainWindow()
{
InitializeComponent();
data = new List<Event>()
{
new Event() { PID = 1, Desc=2 },
new Event() { PID = 1, Desc=3 },
new Event() { PID = 2, Desc=4 },
new Event() { PID = 2, Desc=5 },
new Event() { PID = 3, Desc=6 }
};
var result =
from d in data
group d.Desc by d.PID into pg
select new { ID = pg.Key, SUM = pg.Sum() };
datagrid.ItemsSource = result;
}
И XAML является
<DataGrid Name="datagrid" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="id" Binding="{Binding ID}" Width="*"/>
<DataGridTextColumn Header="Name" Binding="{Binding SUM}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
это хорошо работает! , но это не очень хорошо,
Что я хочу сделать, так это вернуть результат «var result» из функции и привязки, как я сделал это с DataGrid Как это сделать?
Это IEnumerable<IGrouping<int,???>>
на ??? есть анонимный тип ....
так как я могу вернуть это из функции и привязки, как я сделал на DataGrid?
Спасибо!
Вы можете просто вернуть 'IEnumerable', если этот метод будет использоваться для привязки списка _things_. 'private IEnumerable GetData()'. Поскольку свойство [ItemsSource] (https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemssource (v = vs.110) .aspx) принимает 'IEnumerable', это должно быть хорошо. – Michael