私は、次のデータグリッドを持っている:WPFのDataGrid RowDetails - 外側のDataGridの親のDataRowに内部データグリッドをバインド
<DataGrid x:Name="dgOuter"
ItemsSource="{Binding}" AutoGenerateColumns="false">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<DataGrid ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}}"
AutoGenerateColumns="false">
<DataGridTextColumn Header="ID" Binding="{Binding ID.oldValue}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name.oldValue}" />
<DataGridTextColumn Header="Gender" Binding="{Binding Gender.oldValue}" />
</DataGrid>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID.newValue}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name.newValue}" />
<DataGridTextColumn Header="Gender" Binding="{Binding Gender.newValue}" />
</DataGrid.Columns>
</DataGrid>
外DataGridのDataContextのは、プロパティとして、ID、名前と性別を含むオブジェクトのリストです。これらはoldValueとnewValueを含むオブジェクトです。
目的:RowDetailsは、選択した行と同じ行を正確に表示しますが、oldValueではなくnewValueを表示します。
問題:選択した行のDataBound項目をポイントする方法がわかりません。
私はすでに新しい内側のDataGridの代わりにTextBoxesを使用してこれを達成しましたが、これは実際にはたくさんのコードです。
内部DataGridの正しいバインディングは何ですか?
アウターグリッドは、行内にいくつかの値を表示します。行を編集すると、新しい値が表示されます。その行をクリックして詳細ビューを表示すると、詳細ビューには既存の値が表示されます。それは達成しようとしていることですか? – AnjumSKhan