前端代码
<Grid>
<DataGrid Name="gd" CanUserSortColumns="True" AutoGenerateColumns="False" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding UserName}" Width="100" Header="学生姓名"/>
<DataGridTextColumn Binding="{Binding ClassName}" Width="100" Header="班级"/>
<DataGridTextColumn Binding="{Binding Address}" Width="100" Header="地址"/>
<DataGridTemplateColumn Header="操作" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
<Button Content="编辑" Margin="10 0 10 0" Height="22" Width="30"/>
<Button Content="删除" Height="22" Width="30"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
AutoGenerateColumns="False" 获取或设置一个值,该值指示是否为数据源中的每个字段自动创建绑定字段。GridView.AutoGenerateColumns 属性 (System.Web.UI.WebControls) | Microsoft Docs
CanUserAddRows="False" Gets or sets a value that indicates whether the user can add new rows to the DataGrid. DataGrid.CanUserAddRows Property (System.Windows.Controls) | Microsoft Docs
DataGridTemplateColumn 设置 CellTemplate,然后设置datatemplate 提供模板样式设置
后台代码
var students = new List<Student>(); students.Add(new Student { UserName = "小明", ClassName = "一班", Address = "故宫" }); students.Add(new Student { UserName = "小红", ClassName = "二班", Address = "三元桥" }); students.Add(new Student { UserName = "张三", ClassName = "三班", Address = "十里河" }); students.Add(new Student { UserName = "李四", ClassName = "四班", Address = "西二旗" }); this.gd.ItemsSource = students;
public class Student { public string UserName { get; set; } public string ClassName { get; set; } public string Address { get; set; } }

源码地址:https://gitee.com/houzhifei/wpf-demo.git