Lier la propriété SelectedItem du premier DataGrid à une propriété source de votre modèle de vue:
<DataGrid x:Name="dataGrid1" SelectedItem="{Binding MySelectedItem}" />
private YourType _selectedItem;
public YourType MySelectedItem
{
get { return _selectedItem;; }
set { _selectedItem; = value; NotifyPropertyChanged(); }
}
... et la propriété ItemsSource du deuxième DataGrid à la propriété sous de l'élément sélectionné dans la première:
<DataGrid x:Name="dataGrid2" ItemsSource="{Binding MySelectedItem.TheCollectionProperty}" />
Assurez-vous que votre point de vue classe modèle implémente le INotifyPropertyChanged et déclenche l'événement PropertyChanged lorsque la propriété source "MySelectedItem" est définie: https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx
Pour ce faire, utilisez le modèle de conception MVVM.
Vous pouvez également lier la propriété ItemsSource du second DataGrid directement à la propriété SelectedItem du premier comme ceci:
<DataGrid x:Name="dataGrid2" ItemsSource="{Binding SelectedItem.TheCollectionProperty, ElementName=dataGrid1}" />
Notez que pour cet exemple de code pour travailler le type de vos articles dans la première DataGrid, à savoir "YourType" dans l'exemple de code ci-dessus, doit avoir une propriété publique appelée "TheCollectionProperty" qui renvoie un IEnumerable des éléments que vous souhaitez afficher dans le second DataGrid.
Est-ce que votre contexte de données a la liste 2, ou l'objet que datagrid1 est lié à avoir sa propre liste de ses sous-objets? – Bryan
@Bryan Celui-ci: "... l'objet que datagrid1 est lié à avoir sa propre liste de ses sous-objets?" – Number8