Hi bala;
Here's an example to achieve what you want using the NorthwindIB database.
1. First query the related entities.
public void LoadDataGridFromIndirectlyRelatedEntity() {
Orders = new ObservableCollection<Order>();
var ordersQuery = _mainMgr.Orders
.Include(o => o.Customer)
.Include("OrderDetails.Product.Supplier");
ordersQuery.ExecuteAsync(e => {
e.Results.ForEach(Orders.Add);
});
}
2. Bind to the data grid. I'm not an expert on DevExpress AgDataGrid so I'm using the Silverlight DataGrid as an example.
<sdk:DataGrid Name="OrdersGrid"
AutoGenerateColumns="False"
ItemsSource="{Binding Orders}"
SelectionMode="Single"
Grid.Row="0">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn
Binding="{Binding OrderID}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
<sdk:DataGridTextColumn
Binding="{Binding Customer.CompanyName}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
<sdk:DataGridTextColumn
Header="Count of OrderDetails"
Binding="{Binding OrderDetails.Count}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<sdk:DataGrid Name="CustomersGrid"
AutoGenerateColumns="False"
ItemsSource="{Binding ElementName=OrdersGrid, Path=SelectedItem.OrderDetails}"
SelectionMode="Single"
Grid.Row="1">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn
Binding="{Binding OrderID}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
<sdk:DataGridTextColumn
Binding="{Binding Order.ShipCity}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
<sdk:DataGridTextColumn
Binding="{Binding Product.ProductName}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
<sdk:DataGridTextColumn
Binding="{Binding Product.Supplier.CompanyName}"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
You can see here for information on how to do it using the AgDataGrid.