これは、かなり一般的な問題に対する 1 つの便利な解決策のように思えます。
2 つのデータ グリッドでこれを行う最も簡単な方法は、コード ビハインドとリフレクションを使用することです。まず、各プロパティの名前と値を表示する型を定義します。
class PropertyModel {
private readonly string _name = "";
private readonly object _value = null;
public PropertyModel(string name, object value) {
_name = name ?? "";
_value = _value;
}
public string Name {
get { return _name; }
}
public object Value {
get { return _value; }
}
}
次に、コード ビハインドにイベント ハンドラーを追加して、最初のデータグリッドでの選択の変更を処理します。
private void _onDataGrid1SelectionChanged(object sender, SelectedCellsChangedEventArgs e) {
if (e.AddedCells.Count > 0) {
var props = new Collection<PropertyModel>();
var obj = _dataGrid1.SelectedItem;
foreach(var prop in obj.GetType().GetProperties()) {
props.Add(new PropertyModel(prop.Name, prop.GetValue(obj, null)));
}
_dataGrid2.ItemsSource = props;
}
}
上記のコードは非常に大雑把であり、DataGrid1 の SelectionMode が Single に設定されている場合にのみ機能することに注意してください。ただし、(イベント ハンドラーを使用して) 手早く簡単に実行する場合は、ここから開始することをお勧めします。
別の優れたソリューションは、行の詳細を使用することです。
これは、行の詳細を使用するための非常に優れた入門チュートリアルです。もちろん、件名に関する msdn の記事も読む必要があります。