を にバインドするDataGridとItemsSource、ObservableCollection<Quote>それぞれがオブジェクトをそのままDataGridRow使用して構築されます(データ層)。QuoteDataContext
デフォルトでは、DataGrid はデータ項目の各プロパティの列を自動的に生成するため、この場合はTicker、、、RatingおよびSender.
にバインドされた列を含むAutoGenerateColumns="False"独自の を設定および定義することで、それをオーバーライドできます。<DataGrid.Columns>Sender.Email
<DataGrid ItemsSource="{Binding Quotes}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Ticker" Binding="{Binding Ticker}"/>
<DataGridTextColumn Header="Rating" Binding="{Binding Rating}"/>
<DataGridTextColumn Header="Email" Binding="{Binding Sender.Email}"/>
</DataGrid.Columns>
</DataGrid>
または、暗黙的な DataTemplate を使用して、プロパティSenderを含む文字列でオブジェクトを描画するように WPF に指示できます。Email
<DataGrid ItemsSource="{Binding Quotes}">
<DataGrid.Resources>
<DataTemplate TargetType="{x:Type local:People}">
<TextBlock Text="{Binding Email}" />
</DataTemplate>
</DataGrid.Resources>
</DataGrid>
2 つのうち、編集などのために余分なコードを作成する必要がないため、状況に応じて最初のものを選択します。
行がクリックされたときにデータ オブジェクトを取得するには、単に行の をチェックアウトするDataContextか、にバインドしますCommandParameter。"{Binding }"