【发布时间】:2020-05-19 16:31:43
【问题描述】:
我们如何使用 UWP 的 GridView 看起来像下面的 WPF DataGrid?
备注:数据绑定不重要。您可以只假设一个伪代码(具有 MyTableId、DateModified、Author 属性的伪类)。
WPF 数据网格 XAML:
<Window x:Class="MyWPFProj.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
...........
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="103*"/>
<ColumnDefinition Width="697*"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="dgMathDocs" IsReadOnly="True" AutoGenerateColumns="False" SelectionMode="Single" Margin="0,43,0,0" Grid.ColumnSpan="2">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Edit">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="btnEdit" Content="Edit" Click="btnEdit_Click"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Delete">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="btnDelete" Content="Delete" Click="btnDelete_Click"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="ID" Visibility="Collapsed" Binding="{Binding MyTableId}" />
<DataGridTemplateColumn Header="Date Modified">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding DateModified}" BorderThickness="0" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Author" Binding="{Binding Author}"/>
</DataGridHyperlinkColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
上述 XAML 的 WPF DataGrid 显示:
【问题讨论】:
-
你好,你为什么坚持使用GridView而不是DataGrid? DataGrid 提供了接近 WPF 中使用 DataGrid 的许多特殊方法。与GridView相比,DataGrid显然可以更快的实现你的需求。也可以参考DataGrid的source code
标签: xaml uwp datagrid uwp-xaml