Да. Просто назовите ваш ListBox, свяжите свойство DataContext DataGrid со свойством SelectedItem объекта ListBox, а затем установите для ItemsSource DataGrid соответствующий узел xml.
См. Код ниже. Однако вместо DataGrid он использует ListView.
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<XmlDataProvider x:Key="data">
<x:XData>
<root xmlns="">
<project name="p1">
<row field1="31" field2="3" Name="Joe"/>
<row field1="39" field2="3" Name="Joey"/>
<row field1="37" field2="3" Name="Joei"/>
</project>
<project name="p2">
<row field1="31" field2="3" Name="Joe"/>
<row field1="39" field2="3" Name="Joey"/>
</project>
</root>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<ListBox x:Name="listBox" ItemsSource="{Binding Source={StaticResource data}, XPath=root/project}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=@name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListView Grid.Column="1" DataContext="{Binding ElementName=listBox, Path=SelectedItem}" ItemsSource="{Binding XPath=row}">
<ListView.View>
<GridView>
<GridViewColumn Header="Field1" DisplayMemberBinding="{Binding XPath=@field1}"/>
<GridViewColumn Header="Field2" DisplayMemberBinding="{Binding XPath=@field2}"/>
<GridViewColumn Header="Field3" DisplayMemberBinding="{Binding XPath=@Name}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>