UWPではDataGridライクなものがないので似た感じになるようにしてみました。
(現在はToolkitで正式版が提供されています。こちらも参照を。ToolkitのDataGrid)
ListViewだけではカラムヘッダーがないので、ListViewと同じ幅でListViewの上側にカラムヘッダー部分をListViewのデータ表示部分のGridをほぼまねて作成します。
ListViewの方ではListView.ItemTemplateのDataTemplateにカラムヘッダーのGridと同じ構成にします。
ここでカラム幅をユーザは変更できないので、カラム内で少しマージンを充てます。
そうしないと見ずらいです。
MainPage.xaml
<Grid Height="30" Margin="10,87,10,0" VerticalAlignment="Top" Background="#FFD0D3D3"> <Grid.ColumnDefinitions> <ColumnDefinition Width="50" /> <ColumnDefinition Width="50" /> <ColumnDefinition Width="60" /> <ColumnDefinition Width="150" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="300" /> <ColumnDefinition Width="200" /> </Grid.ColumnDefinitions> <TextBlock x:Uid="GridResult" Grid.Column="0" Text="結果" Margin="5,0,5,0" /> <TextBlock x:Uid="GridStatus" Grid.Column="1" Text="status" Margin="5,0,5,0" /> <TextBlock x:Uid="GridRExternal" Grid.Column="2" Text="外部" Margin="5,0,5,0" /> <TextBlock x:Uid="GridErrorMessage" Grid.Column="3" Text="エラー" Margin="5,0,5,0" /> <TextBlock x:Uid="GridOriginalURL" Grid.Column="4" Text="元々のURL" Margin="5,0,5,0" /> <TextBlock x:Uid="GridInterpretedURL" Grid.Column="5" Text="解釈したURL" Margin="5,0,5,0" /> <TextBlock x:Uid="GridPageURL" Grid.Column="6" Text="ページ" Margin="5,0,5,0" /> </Grid> <ListView ItemsSource="{Binding Path=Data}" Margin="10,122,10,10" Background="#FF90D0E8"> <ListView.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50" /> <ColumnDefinition Width="50" /> <ColumnDefinition Width="60" /> <ColumnDefinition Width="150" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="300" /> <ColumnDefinition Width="200" /> </Grid.ColumnDefinitions> <TextBlock Text="{Binding Path=Result}" Grid.Column="0" Margin="5,0,5,0" /> <TextBlock Text="{Binding Path=StatusCode}" Grid.Column="1" Margin="5,0,5,0" /> <TextBlock Text="{Binding Path=External}" Grid.Column="2" Margin="5,0,5,0" /> <TextBlock Text="{Binding Path=ErrorMessage}" Grid.Column="3" TextWrapping="Wrap" Margin="5,0,5,0" /> <TextBlock Text="{Binding Path=Original}" Grid.Column="4" TextWrapping="Wrap" Margin="5,0,5,0" /> <TextBlock Grid.Column="5" Margin="5,0,5,0" TextWrapping="Wrap"> <Hyperlink NavigateUri="{Binding Path=InterpretedURL}"><run Text="{Binding Path=InterpretedURL}" /></Hyperlink> </TextBlock> <TextBlock Grid.Column="6" Margin="5,0,5,0" TextWrapping="Wrap"> <Hyperlink NavigateUri="{Binding Path=Page}"><run Text="{Binding Path=Page}" /></Hyperlink> </TextBlock> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>