Во-первых, необходимо установить для AutoGenerateColumns значение false в DataGrid, чтобы избежать получения типа столбца по умолчанию DataGridTextColumn для всех свойств связанных объектов.
Затем необходимо определить столбцы в xaml для каждогосвойства ваших связанных объектов, которые вы хотите отобразить.Для свойств с простым типом, например string
или int
(например), вы можете просто использовать DataGridTextColumn
со стандартным связыванием в свойстве привязки.
Для вашего сложного типа (EmployeeName
)вам нужно использовать DataGridTemplateColumn
, а затем определить DataTemplate
для свойства DataGridTemplateColumn.CellTemplate
, которое сообщает столбцу, как отображать EmployeeName
.Простой пример, который просто использует один TextBlock
и Run
для каждого свойства EmployeeName
, будет выглядеть следующим образом:
<sdk:DataGrid ItemsSource="{Binding MyCollection}"
AutoGenerateColumns="false">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding EmployeeName.Title}"></Run>
<Run Text="{Binding EmployeeName.FirstName}"></Run>
<Run Text="{Binding EmployeeName.LastName}"></Run>
</TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>