Свяжите счет Списка с сеткой данных - PullRequest
0 голосов
/ 05 марта 2012

У меня есть следующий класс данных:

class CustomerProducts
{
    public string Id { get; set; }

    public List<ProductId> Products { get; set; }
} 

И следующий XAML:

<DataGrid Name="grd_CustomerProducts" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=my:MainWindow, AncestorLevel=1}, Path=CustomerOverview}" />

Примечание: CustomerOverview - это ObservableCollection<CustomerProducts> в главном окне

Я хочу связать коллекцию CustomerOverview с DataGrid, чтобы получить идентификатор клиента и количество всех идентификаторов в продуктах.Например:

Id ........ |Количество продуктов

0001a |3

bb032 |0

3rt640 |99

Как я могу изменить свой XAML для достижения этого или мне нужно реализовать что-то еще?

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

Просто добавьте столбцы вручную с правильной привязкой:

<DataGrid Name="grd_CustomerProducts" 
    ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType=my:MainWindow, AncestorLevel=1}, Path=CustomerOverview}"
    AutoGenerateColumns="False">
    <DataGrid.Columns>
                    <DataGridTextColumn Header="ID" 
                                        Binding="{Binding Id}" 
                                        />

                    <DataGridTextColumn Header="Number" 
                                        Binding="{Binding Path=Products.Count}" 
                                        />
    </DataGrid.Columns>
</DataGrid>
1 голос
/ 05 марта 2012

Вы можете попробовать добавить столбец в DataGrid, например:

<DataGridTextColumn Binding="{Binding Products.Count}"></DataGridTextColumn>
...