PersonのリストにバインドされたListBoxがあります。リストボックスの項目をグリッドに表示したい。私は以下のコードでこれを達成することができますが、問題はこのコードでは各項目に独自のグリッドがあることです。グリッドの各列が自動的に最長の文字列の幅にスケールされるように、1つのグリッドにすべての項目を含めるようにします。私は代わりにグリッドにデータをバインドする必要がありますか?どうやって?DataTemplateを使用するListBoxのすべてのアイテムをグリッドの代わりに保持するグリッドを定義します。
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path=Name}" />
<TextBlock Grid.Column="1" Text="{Binding Path=Age}" />
<TextBlock Grid.Column="2" Text="{Binding Path=Gender}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>